From 6cbd7f5fc4aa2ef10a4f3628101dff997b42d89c Mon Sep 17 00:00:00 2001 From: cristy Date: Sat, 17 Oct 2009 16:06:51 +0000 Subject: [PATCH] --- magick/enhance.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/magick/enhance.c b/magick/enhance.c index 1c7830411..c0767353c 100644 --- a/magick/enhance.c +++ b/magick/enhance.c @@ -2057,19 +2057,28 @@ MagickExport MagickBooleanType GammaImageChannel(Image *image, indexes=GetCacheViewAuthenticIndexQueue(image_view); for (x=0; x < (long) image->columns; x++) { - if ((channel & RedChannel) != 0) - q->red=gamma_map[ScaleQuantumToMap(q->red)]; - if ((channel & GreenChannel) != 0) - q->green=gamma_map[ScaleQuantumToMap(q->green)]; - if ((channel & BlueChannel) != 0) - q->blue=gamma_map[ScaleQuantumToMap(q->blue)]; - if ((channel & OpacityChannel) != 0) + if (channel == DefaultChannels) { - if (image->matte == MagickFalse) - q->opacity=gamma_map[ScaleQuantumToMap(q->opacity)]; - else - q->opacity=(Quantum) QuantumRange-gamma_map[ - ScaleQuantumToMap((Quantum) (QuantumRange-q->opacity))]; + q->red=gamma_map[ScaleQuantumToMap(q->red)]; + q->green=gamma_map[ScaleQuantumToMap(q->green)]; + q->blue=gamma_map[ScaleQuantumToMap(q->blue)]; + } + else + { + if ((channel & RedChannel) != 0) + q->red=gamma_map[ScaleQuantumToMap(q->red)]; + if ((channel & GreenChannel) != 0) + q->green=gamma_map[ScaleQuantumToMap(q->green)]; + if ((channel & BlueChannel) != 0) + q->blue=gamma_map[ScaleQuantumToMap(q->blue)]; + if ((channel & OpacityChannel) != 0) + { + if (image->matte == MagickFalse) + q->opacity=gamma_map[ScaleQuantumToMap(q->opacity)]; + else + q->opacity=(Quantum) QuantumRange-gamma_map[ + ScaleQuantumToMap((Quantum) (QuantumRange-q->opacity))]; + } } q++; } -- 2.50.1