From efe9adea1c6cf4db0ff1cbcb71eacb5b1ccd37e1 Mon Sep 17 00:00:00 2001 From: Cristy Date: Wed, 7 Dec 2016 18:11:51 -0500 Subject: [PATCH] Set colorspace to sRGB if -append has non-homogenous colorspaces --- ChangeLog | 4 ++++ MagickCore/image.c | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/ChangeLog b/ChangeLog index 29aafea2a..6956a48b9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2016-12-07 7.0.3-10 Cristy + * Set colorspace to sRGB if -append has non-homogenous colorspaces (reference + https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=29105). + 2016-12-05 7.0.3-9 Cristy * Release ImageMagick version 7.0.3-9, GIT revision 19139:6fed3f1:20161205. diff --git a/MagickCore/image.c b/MagickCore/image.c index eb8ae8467..685d3acea 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -450,6 +450,7 @@ MagickExport Image *AppendImages(const Image *images, *append_image; MagickBooleanType + homogeneous_colorspace, status; MagickOffsetType @@ -489,11 +490,14 @@ MagickExport Image *AppendImages(const Image *images, width=images->columns; height=images->rows; depth=images->depth; + homogeneous_colorspace=MagickTrue; next=GetNextImageInList(images); for ( ; next != (Image *) NULL; next=GetNextImageInList(next)) { if (next->depth > depth) depth=next->depth; + if (next->colorspace != images->colorspace) + homogeneous_colorspace=MagickFalse; if (next->alpha_trait != UndefinedPixelTrait) alpha_trait=BlendPixelTrait; number_images++; @@ -519,6 +523,8 @@ MagickExport Image *AppendImages(const Image *images, append_image=DestroyImage(append_image); return((Image *) NULL); } + if (homogeneous_colorspace == MagickFalse) + (void) SetImageColorspace(append_image,sRGBColorspace,exception); append_image->depth=depth; append_image->alpha_trait=alpha_trait; (void) SetImageBackgroundColor(append_image,exception); -- 2.50.1