]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Mon, 9 Apr 2012 15:01:35 +0000 (15:01 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Mon, 9 Apr 2012 15:01:35 +0000 (15:01 +0000)
MagickCore/decorate.c
MagickCore/fx.c
MagickCore/image.c
MagickCore/paint.c

index 6092acecf9ed0852cc8b5442f53f98070f2f98a2..fde090785de95f201a70505a11af2d86170c91e5 100644 (file)
@@ -229,6 +229,9 @@ MagickExport Image *FrameImage(const Image *image,const FrameInfo *frame_info,
       frame_image=DestroyImage(frame_image);
       return((Image *) NULL);
     }
+  if ((IsGrayColorspace(image->colorspace) != MagickFalse) &&
+      (IsPixelInfoGray(&image->matte_color) == MagickFalse))
+    SetImageColorspace(frame_image,sRGBColorspace,exception);
   if ((frame_image->border_color.matte != MagickFalse) &&
       (frame_image->matte == MagickFalse))
     (void) SetImageAlpha(frame_image,OpaqueAlpha,exception);
index 3ac1c15e4be825acfca62ef27c8ec894c47e150d..e5ee27378cbdb489394f1645d5dea2ebcda8ff48 100644 (file)
@@ -680,23 +680,6 @@ MagickExport Image *ColorizeImage(const Image *image,const char *blend,
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickSignature);
-  colorize_image=CloneImage(image,image->columns,image->rows,MagickTrue,
-    exception);
-  if (colorize_image == (Image *) NULL)
-    return((Image *) NULL);
-  if (SetImageStorageClass(colorize_image,DirectClass,exception) == MagickFalse)
-    {
-      colorize_image=DestroyImage(colorize_image);
-      return((Image *) NULL);
-    }
-  if ((colorize->matte != MagickFalse) &&
-      (colorize_image->matte == MagickFalse))
-    (void) SetImageAlpha(colorize_image,OpaqueAlpha,exception);
-  if (blend == (const char *) NULL)
-    return(colorize_image);
-  /*
-    Determine RGB values of the fill color for pixel
-  */
   GetPixelInfo(image,&fill_color);
   flags=ParseGeometry(blend,&geometry_info);
   fill_color.red=geometry_info.rho;
@@ -717,9 +700,23 @@ MagickExport Image *ColorizeImage(const Image *image,const char *blend,
       if ((flags & ChiValue) != 0)
         fill_color.alpha=geometry_info.chi;
     }
+  colorize_image=CloneImage(image,image->columns,image->rows,MagickTrue,
+    exception);
+  if (colorize_image == (Image *) NULL)
+    return((Image *) NULL);
+  if (SetImageStorageClass(colorize_image,DirectClass,exception) == MagickFalse)
+    {
+      colorize_image=DestroyImage(colorize_image);
+      return((Image *) NULL);
+    }
   if ((IsGrayColorspace(image->colorspace) != MagickFalse) &&
       (IsPixelInfoGray(&fill_color) != MagickFalse))
-    colorize_image->colorspace=sRGBColorspace;
+    SetImageColorspace(colorize_image,sRGBColorspace,exception);
+  if ((colorize->matte != MagickFalse) &&
+      (colorize_image->matte == MagickFalse))
+    (void) SetImageAlpha(colorize_image,OpaqueAlpha,exception);
+  if (blend == (const char *) NULL)
+    return(colorize_image);
   /*
     Colorize DirectClass image.
   */
index 03f621fa1d7c82edeff659373e8b059558d1e3a7..31be7c741d51296eb67090493a18cfe7f6ef34e1 100644 (file)
@@ -516,6 +516,9 @@ MagickExport Image *AppendImages(const Image *images,
   append_view=AcquireCacheView(append_image);
   for (n=0; n < (MagickOffsetType) number_images; n++)
   {
+    if ((IsGrayColorspace(image->colorspace) != MagickFalse) &&
+        (IsGrayColorspace(append_image->colorspace) != MagickFalse))
+      (void) TransformImageColorspace(append_image,sRGBColorspace,exception);
     SetGeometry(append_image,&geometry);
     GravityAdjustGeometry(image->columns,image->rows,image->gravity,&geometry);
     if (stack != MagickFalse)
@@ -2334,6 +2337,9 @@ MagickExport MagickBooleanType SetImageBackgroundColor(Image *image,
   assert(image->signature == MagickSignature);
   if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
     return(MagickFalse);
+  if ((IsGrayColorspace(image->colorspace) != MagickFalse) &&
+      (IsPixelInfoGray(&image->background_color) == MagickFalse))
+    (void) TransformImageColorspace(image,sRGBColorspace,exception);
   if ((image->background_color.matte != MagickFalse) &&
       (image->matte == MagickFalse))
     (void) SetImageAlpha(image,OpaqueAlpha,exception);
index 1b6c56199d0662dbe7fd97d9c6ff5a5200e099ee..3b70e53ecc03d6617d5ae4b11ea8bbb987d970f4 100644 (file)
@@ -171,6 +171,8 @@ MagickExport MagickBooleanType FloodfillPaintImage(Image *image,
     return(MagickFalse);
   if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
     return(MagickFalse);
+  if (IsGrayColorspace(image->colorspace) != MagickFalse)
+    (void) TransformImageColorspace(image,sRGBColorspace,exception);
   if ((target->matte != MagickFalse) && (image->matte == MagickFalse))
     (void) SetImageAlpha(image,OpaqueAlpha,exception);
   /*
@@ -770,6 +772,9 @@ MagickExport MagickBooleanType OpaquePaintImage(Image *image,
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
     return(MagickFalse);
+  if ((IsGrayColorspace(image->colorspace) != MagickFalse) &&
+      (IsPixelInfoGray(fill) != MagickFalse))
+    (void) TransformImageColorspace(image,sRGBColorspace,exception);
   if ((fill->matte != MagickFalse) && (image->matte == MagickFalse))
     (void) SetImageAlpha(image,OpaqueAlpha,exception);
   /*