]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Thu, 8 Dec 2011 17:18:50 +0000 (17:18 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Thu, 8 Dec 2011 17:18:50 +0000 (17:18 +0000)
MagickCore/resize.c

index 9b9376c819130478793f386577c0a6ae133af874..182a4c57acc68026895e2488c943b3fe91d1d443 100644 (file)
@@ -2838,7 +2838,7 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
     scanline=(MagickRealType *) AcquireQuantumMemory((size_t) image->columns,
       GetPixelChannels(image)*sizeof(*scanline));
   scale_scanline=(MagickRealType *) AcquireQuantumMemory((size_t)
-    scale_image->columns,MaxPixelChannels*sizeof(*scale_scanline));
+    scale_image->columns,GetPixelChannels(image)*sizeof(*scale_scanline));
   y_vector=(MagickRealType *) AcquireQuantumMemory((size_t) image->columns,
     GetPixelChannels(image)*sizeof(*y_vector));
   if ((scanline == (MagickRealType *) NULL) ||
@@ -3049,9 +3049,8 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
               traits=GetPixelChannelMapTraits(image,i);
               if (traits == UndefinedPixelTrait)
                 continue;
-              channel=GetPixelChannelMapChannel(image,i);
               pixel[i]+=span.x*scanline[x*GetPixelChannels(image)+i];
-              scale_scanline[n*GetPixelChannels(scale_image)+channel]=pixel[i];
+              scale_scanline[n*GetPixelChannels(image)+i]=pixel[i];
             }
             scale.x-=span.x;
             span.x=1.0;
@@ -3078,8 +3077,8 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
         }
       if ((next_column == MagickFalse) &&
           ((ssize_t) n < (ssize_t) scale_image->columns))
-        for (i=0; i < (ssize_t) GetPixelChannels(scale_image); i++)
-          scale_scanline[n*GetPixelChannels(scale_image)+i]=pixel[i];
+        for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+          scale_scanline[n*GetPixelChannels(image)+i]=pixel[i];
       /*
         Transfer scanline to scaled image.
       */
@@ -3096,14 +3095,14 @@ MagickExport Image *ScaleImage(const Image *image,const size_t columns,
           if ((scale_traits & BlendPixelTrait) == 0)
             {
               SetPixelChannel(scale_image,channel,ClampToQuantum(
-                scale_scanline[x*GetPixelChannels(scale_image)+channel]),q);
+                scale_scanline[x*GetPixelChannels(image)+i]),q);
               continue;
             }
           alpha=QuantumScale*scanline[x*GetPixelChannels(image)+
             GetPixelChannelMapChannel(image,AlphaPixelChannel)];
           gamma=1.0/(fabs((double) alpha) <= MagickEpsilon ? 1.0 : alpha);
           SetPixelChannel(scale_image,channel,ClampToQuantum(gamma*
-            scale_scanline[x*GetPixelChannels(scale_image)+channel]),q);
+            scale_scanline[x*GetPixelChannels(image)+i]),q);
         }
         q+=GetPixelChannels(scale_image);
       }