]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Tue, 6 Jan 2015 23:59:14 +0000 (23:59 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Tue, 6 Jan 2015 23:59:14 +0000 (23:59 +0000)
MagickCore/enhance.c

index d7ee3689a91ccd76a70a1e9b83440a3c5d2b861d..c7cef10bce8ea1cdb4873cf6874297cea49a8e58 100644 (file)
@@ -375,22 +375,35 @@ MagickExport MagickBooleanType ClutImage(Image *image,const Image *clut_image,
     GetPixelInfo(image,&pixel);
     for (x=0; x < (ssize_t) image->columns; x++)
     {
+      PixelTrait
+        traits;
+
       if (GetPixelReadMask(image,q) == 0)
         {
           q+=GetPixelChannels(image);
           continue;
         }
       GetPixelInfoPixel(image,q,&pixel);
-      pixel.red=clut_map[ScaleQuantumToMap(
-        ClampToQuantum(pixel.red))].red;
-      pixel.green=clut_map[ScaleQuantumToMap(
-        ClampToQuantum(pixel.green))].green;
-      pixel.blue=clut_map[ScaleQuantumToMap(
-        ClampToQuantum(pixel.blue))].blue;
-      pixel.black=clut_map[ScaleQuantumToMap(
-        ClampToQuantum(pixel.black))].black;
-      pixel.alpha=clut_map[ScaleQuantumToMap(
-        ClampToQuantum(pixel.alpha))].alpha;
+      traits=GetPixelChannelTraits(image,RedPixelChannel);
+      if ((traits & UpdatePixelTrait) != 0)
+        pixel.red=clut_map[ScaleQuantumToMap(ClampToQuantum(
+          pixel.red))].red;
+      traits=GetPixelChannelTraits(image,GreenPixelChannel);
+      if ((traits & UpdatePixelTrait) != 0)
+        pixel.green=clut_map[ScaleQuantumToMap(ClampToQuantum(
+          pixel.green))].green;
+      traits=GetPixelChannelTraits(image,BluePixelChannel);
+      if ((traits & UpdatePixelTrait) != 0)
+        pixel.blue=clut_map[ScaleQuantumToMap(ClampToQuantum(
+          pixel.blue))].blue;
+      traits=GetPixelChannelTraits(image,BlackPixelChannel);
+      if ((traits & UpdatePixelTrait) != 0)
+        pixel.black=clut_map[ScaleQuantumToMap(ClampToQuantum(
+          pixel.black))].black;
+      traits=GetPixelChannelTraits(image,AlphaPixelChannel);
+      if ((traits & UpdatePixelTrait) != 0)
+        pixel.alpha=clut_map[ScaleQuantumToMap(ClampToQuantum(
+          pixel.alpha))].alpha;
       SetPixelViaPixelInfo(image,&pixel,q);
       q+=GetPixelChannels(image);
     }