EndianType
endian;
- MagickRealType
- alpha;
-
MagickSizeType
number_pixels;
}
if (quantum_info->alpha_type == AssociatedQuantumAlpha)
{
+ MagickRealType
+ Sa;
+
register Quantum
*restrict q;
q=GetCacheViewAuthenticPixelQueue(image_view);
for (x=0; x < (ssize_t) image->columns; x++)
{
- alpha=QuantumScale*GetPixelAlpha(image,q);
- SetPixelRed(image,ClampToQuantum(alpha*GetPixelRed(image,q)),q);
- SetPixelGreen(image,ClampToQuantum(alpha*GetPixelGreen(image,q)),q);
- SetPixelBlue(image,ClampToQuantum(alpha*GetPixelBlue(image,q)),q);
- q++;
+ register ssize_t
+ i;
+
+ Sa=QuantumScale*GetPixelAlpha(image,q);
+ for (i=0; i < (ssize_t) channels; i++)
+ {
+ PixelChannel
+ channel;
+
+ PixelTrait
+ traits;
+
+ channel=GetPixelChannelMapChannel(image,i);
+ traits=GetPixelChannelMapTraits(image,channel);
+ if ((traits & UpdatePixelTrait) != 0)
+ q[i]=ClampToQuantum(Sa*q[i]);
+ }
+ q+=channels;
}
}
if ((quantum_type == RGBOQuantum) || (quantum_type == CMYKOQuantum) ||
for (x=0; x < (ssize_t) number_pixels; x++)
{
SetPixelAlpha(image,GetPixelAlpha(image,q),q);
- q++;
+ q+=channels;
}
}
if ((quantum_type == CbYCrQuantum) || (quantum_type == CbYCrAQuantum))