From 42497c5c1408bf58c9e42ebdd5d5e7acc44c893b Mon Sep 17 00:00:00 2001 From: cristy Date: Wed, 3 Aug 2011 18:36:30 +0000 Subject: [PATCH] --- MagickCore/effect.c | 4 +++- MagickCore/resize.c | 30 ++++++++++++++++++++++-------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/MagickCore/effect.c b/MagickCore/effect.c index ab794b4f4..b9f296df8 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -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. diff --git a/MagickCore/resize.c b/MagickCore/resize.c index 962ac3ab4..9a40f70fa 100644 --- a/MagickCore/resize.c +++ b/MagickCore/resize.c @@ -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]); -- 2.40.0