]> granicus.if.org Git - imagemagick/commitdiff
Set colorspace to sRGB if -append has non-homogenous colorspaces
authorCristy <urban-warrior@imagemagick.org>
Wed, 7 Dec 2016 23:11:51 +0000 (18:11 -0500)
committerCristy <urban-warrior@imagemagick.org>
Wed, 7 Dec 2016 23:12:10 +0000 (18:12 -0500)
ChangeLog
MagickCore/image.c

index 29aafea2a85bf3781da6380d75a6ed3fc11f4f52..6956a48b935b802774cc05ad13aa28808de9c4cb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2016-12-07  7.0.3-10 Cristy  <quetzlzacatenango@image...>
+  * 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  <quetzlzacatenango@image...>
   * Release ImageMagick version 7.0.3-9, GIT revision 19139:6fed3f1:20161205.
 
index eb8ae8467a047a042f0f2f3482d91475fea8ae90..685d3acea7e30a07d3b02e89661b99396ee60215 100644 (file)
@@ -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);