}
pixel=0.0;
if (((resize_traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
+ (GetPixelAlphaTraits(resize_image) == UndefinedPixelTrait) ||
+ (resize_image->matte == MagickFalse))
{
/*
No alpha blending.
}
pixel=0.0;
if (((resize_traits & BlendPixelTrait) == 0) ||
- (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
- (image->matte == MagickFalse))
+ (GetPixelAlphaTraits(resize_image) == UndefinedPixelTrait) ||
+ (resize_image->matte == MagickFalse))
{
/*
No alpha blending.
MagickRealType
alpha,
+ gamma,
pixel[MaxPixelChannels],
*scale_scanline,
*scanline,
s=scanline;
for (x=0; x < (ssize_t) scale_image->columns; x++)
{
+ channel=GetPixelChannelMapChannel(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++)
{
traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
scale_traits=GetPixelChannelMapTraits(scale_image,channel);
if (scale_traits == UndefinedPixelTrait)
continue;
- q[channel]=ClampToQuantum(s[i]);
+ if (((traits & BlendPixelTrait) == 0) ||
+ (GetPixelAlphaTraits(image) == UndefinedPixelTrait) ||
+ (scale_image->matte == MagickFalse))
+ q[channel]=ClampToQuantum(s[i]);
+ else
+ q[channel]=ClampToQuantum(gamma*s[i]);
}
q+=GetPixelChannels(scale_image);
s+=GetPixelChannels(image);
t=scale_scanline;
for (x=0; x < (ssize_t) scale_image->columns; x++)
{
+ channel=GetPixelChannelMapChannel(scale_image,AlphaPixelChannel);
+ alpha=QuantumScale*t[channel];
+ gamma=1.0/(fabs((double) alpha) <= MagickEpsilon ? 1.0 : alpha);
for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
{
traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
scale_traits=GetPixelChannelMapTraits(scale_image,channel);
if (scale_traits == UndefinedPixelTrait)
continue;
- q[channel]=ClampToQuantum(t[i]);
+ 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]);
}
q+=GetPixelChannels(scale_image);
t+=GetPixelChannels(scale_image);