]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Wed, 3 Aug 2011 18:36:30 +0000 (18:36 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Wed, 3 Aug 2011 18:36:30 +0000 (18:36 +0000)
MagickCore/effect.c
MagickCore/resize.c

index ab794b4f48fe99f4d15c528ed73aaa88ead9b2cf..b9f296df844eca9755ed7fbba89fdc325fee96a3 100644 (file)
@@ -1362,7 +1362,9 @@ MagickExport Image *ConvolveImage(const Image *image,
         k=kernel_info->values;
         pixels=p;
         pixel=kernel_info->bias;
-        if ((convolve_traits & BlendPixelTrait) == 0)
+        if (((convolve_traits & BlendPixelTrait) == 0) ||
+            (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
+            (image->matte == MagickFalse))
           {
             /*
               No alpha blending.
index 962ac3ab43b583cdb9e68f11ec786abfe70ba3f0..9a40f70fa661179b57ff13ab83153c05f01f9fdf 100644 (file)
@@ -2254,7 +2254,9 @@ static MagickBooleanType HorizontalFilter(const ResizeFilter *resize_filter,
             continue;
           }
         pixel=0.0;
-        if ((resize_traits & BlendPixelTrait) == 0)
+        if (((resize_traits & BlendPixelTrait) == 0) ||
+            (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
+            (image->matte == MagickFalse))
           {
             /*
               No alpha blending.
@@ -2470,7 +2472,9 @@ static MagickBooleanType VerticalFilter(const ResizeFilter *resize_filter,
             continue;
           }
         pixel=0.0;
-        if ((resize_traits & BlendPixelTrait) == 0)
+        if (((resize_traits & BlendPixelTrait) == 0) ||
+            (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
+            (image->matte == MagickFalse))
           {
             /*
               No alpha blending.
@@ -2956,7 +2960,9 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
           {
             traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
-            if ((traits & BlendPixelTrait) == 0)
+            if (((traits & BlendPixelTrait) == 0) ||
+                (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
+                (image->matte == MagickFalse))
               {
                 x_vector[x*GetPixelChannels(image)+i]=(MagickRealType) p[i];
                 continue;
@@ -2989,7 +2995,9 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
                 for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
                 {
                   traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
-                  if ((traits & BlendPixelTrait) == 0)
+                  if (((traits & BlendPixelTrait) == 0) ||
+                      (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
+                      (image->matte == MagickFalse))
                     {
                       x_vector[x*GetPixelChannels(image)+i]=(MagickRealType)
                         p[i];
@@ -3024,7 +3032,9 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
               for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
               {
                 traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
-                if ((traits & BlendPixelTrait) == 0)
+                if (((traits & BlendPixelTrait) == 0) ||
+                    (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
+                    (image->matte == MagickFalse))
                   {
                     x_vector[x*GetPixelChannels(image)+i]=(MagickRealType) p[i];
                     continue;
@@ -3064,7 +3074,7 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
         s=scanline;
         for (x=0; x < (ssize_t) scale_image->columns; x++)
         {
-          channel=GetPixelChannelMapChannel(image,AlphaPixelChannel);
+          channel=GetPixelChannelMapChannel(scale_image,AlphaPixelChannel);
           alpha=QuantumScale*s[channel];
           gamma=1.0/(fabs((double) alpha) <= MagickEpsilon ? 1.0 : alpha);
           for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
@@ -3076,7 +3086,9 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
             scale_traits=GetPixelChannelMapTraits(scale_image,channel);
             if (scale_traits == UndefinedPixelTrait)
               continue;
-            if ((traits & BlendPixelTrait) == 0)
+            if (((scale_traits & BlendPixelTrait) == 0) ||
+                (GetPixelAlphaTraits(scale_image) == UndefinedPixelTrait) ||
+                (scale_image->matte == MagickFalse))
               q[channel]=ClampToQuantum(s[i]);
             else
               q[channel]=ClampToQuantum(gamma*s[i]);
@@ -3161,7 +3173,9 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
           scale_traits=GetPixelChannelMapTraits(scale_image,channel);
           if (scale_traits == UndefinedPixelTrait)
             continue;
-          if ((scale_traits & BlendPixelTrait) == 0)
+          if (((scale_traits & BlendPixelTrait) == 0) ||
+              (GetPixelAlphaTraits(scale_image) == UndefinedPixelTrait) ||
+              (scale_image->matte == MagickFalse))
             q[channel]=ClampToQuantum(t[i]);
           else
             q[channel]=ClampToQuantum(gamma*t[i]);