]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authoranthony <anthony@git.imagemagick.org>
Fri, 11 Sep 2009 06:46:40 +0000 (06:46 +0000)
committeranthony <anthony@git.imagemagick.org>
Fri, 11 Sep 2009 06:46:40 +0000 (06:46 +0000)
magick/enhance.c

index f1a96122e74b887d8b3d1c416a3d55402231bb53..6c5b9b724cfad330e02866097f14c88eae862f21 100644 (file)
@@ -112,7 +112,9 @@ MagickExport MagickBooleanType AutoGammaImageChannel(Image *image,
     status;
 
   double
-    mean,junk,gamma;
+    mean,junk,gamma,logmean;
+
+  logmean=log(0.5);
 
   if ((channel & SyncChannels) != 0 )
     {
@@ -120,7 +122,7 @@ MagickExport MagickBooleanType AutoGammaImageChannel(Image *image,
         Apply gamma correction equally accross all given channels
       */
       GetImageChannelMean(image, channel, &mean, &junk, &image->exception);
-      gamma = log(mean*QuantumScale)/log(0.5);
+      gamma = log(mean*QuantumScale)/logmean;
       //return GammaImageChannel(image, channel, gamma);
       return LevelImageChannel(image, channel,
                                0.0, (double)QuantumRange, gamma);
@@ -133,7 +135,7 @@ MagickExport MagickBooleanType AutoGammaImageChannel(Image *image,
   if ((channel & RedChannel) != 0)
     {
       GetImageChannelMean(image, RedChannel, &mean, &junk, &image->exception);
-      gamma = log(mean*QuantumScale)/log(0.5);
+      gamma = log(mean*QuantumScale)/logmean;
       //status = status && GammaImageChannel(image, RedChannel, gamma);
       status = status && LevelImageChannel(image, RedChannel,
                                0.0, (double)QuantumRange, gamma);
@@ -141,7 +143,7 @@ MagickExport MagickBooleanType AutoGammaImageChannel(Image *image,
   if ((channel & GreenChannel) != 0)
     {
       GetImageChannelMean(image, GreenChannel, &mean, &junk, &image->exception);
-      gamma = log(mean*QuantumScale)/log(0.5);
+      gamma = log(mean*QuantumScale)/logmean;
       //status = status && GammaImageChannel(image, GreenChannel, gamma);
       status = status && LevelImageChannel(image, GreenChannel,
                                0.0, (double)QuantumRange, gamma);
@@ -149,7 +151,7 @@ MagickExport MagickBooleanType AutoGammaImageChannel(Image *image,
   if ((channel & BlueChannel) != 0)
     {
       GetImageChannelMean(image, BlueChannel, &mean, &junk, &image->exception);
-      gamma = log(mean*QuantumScale)/log(0.5);
+      gamma = log(mean*QuantumScale)/logmean;
       //status = status && GammaImageChannel(image, BlueChannel, gamma);
       status = status && LevelImageChannel(image, BlueChannel,
                                0.0, (double)QuantumRange, gamma);
@@ -158,7 +160,7 @@ MagickExport MagickBooleanType AutoGammaImageChannel(Image *image,
       (image->matte == MagickTrue))
     {
       GetImageChannelMean(image, OpacityChannel, &mean, &junk, &image->exception);
-      gamma = log(mean*QuantumScale)/log(0.5);
+      gamma = log(mean*QuantumScale)/logmean;
       //status = status && GammaImageChannel(image, OpacityChannel, gamma);
       status = status && LevelImageChannel(image, OpacityChannel,
                                0.0, (double)QuantumRange, gamma);
@@ -167,7 +169,7 @@ MagickExport MagickBooleanType AutoGammaImageChannel(Image *image,
       (image->colorspace == CMYKColorspace))
     {
       GetImageChannelMean(image, IndexChannel, &mean, &junk, &image->exception);
-      gamma = log(mean*QuantumScale)/log(0.5);
+      gamma = log(mean*QuantumScale)/logmean;
       //status = status && GammaImageChannel(image, IndexChannel, gamma);
       status = status && LevelImageChannel(image, IndexChannel,
                                0.0, (double)QuantumRange, gamma);