]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Tue, 9 Aug 2011 19:41:42 +0000 (19:41 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Tue, 9 Aug 2011 19:41:42 +0000 (19:41 +0000)
MagickCore/enhance.c
MagickCore/enhance.h
MagickCore/histogram.c
MagickCore/histogram.h
MagickCore/magick-config.h
MagickCore/threshold.c
MagickCore/version.h
MagickWand/magick-image.c
MagickWand/mogrify.c
PerlMagick/Magick.xs

index daf030875aa9157cb74455c31cc53c1514ffd203..db36497815c89fcc33f8e1a9a084db5efbc82b34 100644 (file)
 %
 %  The format of the AutoGammaImage method is:
 %
-%      MagickBooleanType AutoGammaImage(Image *image)
+%      MagickBooleanType AutoGammaImage(Image *image,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
 %    o image: The image to auto-level
 %
+%    o exception: return any errors or warnings in this structure.
+%
 */
-MagickExport MagickBooleanType AutoGammaImage(Image *image)
+MagickExport MagickBooleanType AutoGammaImage(Image *image,
+  ExceptionInfo *exception)
 {
-  MagickStatusType
-    status;
-
   double
     gamma,
     log_mean,
     mean,
     sans;
 
+  MagickStatusType
+    status;
+
   log_mean=log(0.5);
   if (image->sync != MagickFalse)
     {
       /*
         Apply gamma correction equally accross all given channels.
       */
-      (void) GetImageMean(image,&mean,&sans,&image->exception);
+      (void) GetImageMean(image,&mean,&sans,exception);
       gamma=log(mean*QuantumScale)/log_mean;
       return(LevelImage(image,0.0,(double) QuantumRange,gamma));
     }
@@ -124,7 +127,7 @@ MagickExport MagickBooleanType AutoGammaImage(Image *image)
   if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
     {
       PushPixelChannelMap(image,RedChannel);
-      (void) GetImageMean(image,&mean,&sans,&image->exception);
+      (void) GetImageMean(image,&mean,&sans,exception);
       gamma=log(mean*QuantumScale)/log_mean;
       status=status && LevelImage(image,0.0,(double) QuantumRange,gamma);
       PopPixelChannelMap(image);
@@ -132,7 +135,7 @@ MagickExport MagickBooleanType AutoGammaImage(Image *image)
   if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
     {
       PushPixelChannelMap(image,GreenChannel);
-      (void) GetImageMean(image,&mean,&sans,&image->exception);
+      (void) GetImageMean(image,&mean,&sans,exception);
       gamma=log(mean*QuantumScale)/log_mean;
       status=status && LevelImage(image,0.0,(double) QuantumRange,gamma);
       PopPixelChannelMap(image);
@@ -140,7 +143,7 @@ MagickExport MagickBooleanType AutoGammaImage(Image *image)
   if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
     {
       PushPixelChannelMap(image,BlueChannel);
-      (void) GetImageMean(image,&mean,&sans,&image->exception);
+      (void) GetImageMean(image,&mean,&sans,exception);
       gamma=log(mean*QuantumScale)/log_mean;
       status=status && LevelImage(image,0.0,(double) QuantumRange,gamma);
       PopPixelChannelMap(image);
@@ -149,7 +152,7 @@ MagickExport MagickBooleanType AutoGammaImage(Image *image)
       (image->colorspace == CMYKColorspace))
     {
       PushPixelChannelMap(image,BlackChannel);
-      (void) GetImageMean(image,&mean,&sans,&image->exception);
+      (void) GetImageMean(image,&mean,&sans,exception);
       gamma=log(mean*QuantumScale)/log_mean;
       status=status && LevelImage(image,0.0,(double) QuantumRange,gamma);
       PopPixelChannelMap(image);
@@ -158,7 +161,7 @@ MagickExport MagickBooleanType AutoGammaImage(Image *image)
       (image->matte == MagickTrue))
     {
       PushPixelChannelMap(image,AlphaChannel);
-      (void) GetImageMean(image,&mean,&sans,&image->exception);
+      (void) GetImageMean(image,&mean,&sans,exception);
       gamma=log(mean*QuantumScale)/log_mean;
       status=status && LevelImage(image,0.0,(double) QuantumRange,gamma);
       PopPixelChannelMap(image);
@@ -182,16 +185,19 @@ MagickExport MagickBooleanType AutoGammaImage(Image *image)
 %
 %  The format of the LevelImage method is:
 %
-%      MagickBooleanType AutoLevelImage(Image *image)
+%      MagickBooleanType AutoLevelImage(Image *image,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
 %    o image: The image to auto-level
 %
+%    o exception: return any errors or warnings in this structure.
+%
 */
-MagickExport MagickBooleanType AutoLevelImage(Image *image)
+MagickExport MagickBooleanType AutoLevelImage(Image *image,
+  ExceptionInfo *exception)
 {
-  return(MinMaxStretchImage(image,0.0,0.0));
+  return(MinMaxStretchImage(image,0.0,0.0,exception));
 }
 \f
 /*
index 9fbb6f99c2bbe62a339f443601e94d851cca4387..8fc92e019bbb21ceaf5b573b3359388274502f0b 100644 (file)
@@ -23,8 +23,8 @@ extern "C" {
 #endif
 
 extern MagickExport MagickBooleanType
-  AutoGammaImage(Image *),
-  AutoLevelImage(Image *),
+  AutoGammaImage(Image *,ExceptionInfo *),
+  AutoLevelImage(Image *,ExceptionInfo *),
   BrightnessContrastImage(Image *,const double,const double),
   ClutImage(Image *,const Image *),
   ColorDecisionListImage(Image *,const char *),
index f477e700de2841e31404dee18ceec10dac7e215b..a8087a302833b6df8fa3df81a44d237c843badab 100644 (file)
@@ -965,7 +965,7 @@ MagickExport MagickBooleanType IsPaletteImage(const Image *image,
 %  The format of the MinMaxStretchImage method is:
 %
 %      MagickBooleanType MinMaxStretchImage(Image *image,const double black,
-%        const double white)
+%        const double white,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -974,9 +974,11 @@ MagickExport MagickBooleanType IsPaletteImage(const Image *image,
 %    o black, white:  move the black / white point inward from the minimum and
 %      maximum points by this color value.
 %
+%    o exception: return any errors or warnings in this structure.
+%
 */
 MagickExport MagickBooleanType MinMaxStretchImage(Image *image,
-  const double black,const double white)
+  const double black,const double white,ExceptionInfo *exception)
 {
   double
     min,
@@ -991,7 +993,7 @@ MagickExport MagickBooleanType MinMaxStretchImage(Image *image,
       /*
         Auto-level all channels equally.
       */
-      (void) GetImageRange(image,&min,&max,&image->exception);
+      (void) GetImageRange(image,&min,&max,exception);
       min+=black;
       max-=white;
       if (fabs(min-max) >= MagickEpsilon)
@@ -1004,7 +1006,7 @@ MagickExport MagickBooleanType MinMaxStretchImage(Image *image,
   if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
     {
       PushPixelChannelMap(image,RedChannel);
-      (void) GetImageRange(image,&min,&max,&image->exception);
+      (void) GetImageRange(image,&min,&max,exception);
       min+=black;
       max-=white;
       if (fabs(min-max) >= MagickEpsilon)
@@ -1014,7 +1016,7 @@ MagickExport MagickBooleanType MinMaxStretchImage(Image *image,
   if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
     {
       PushPixelChannelMap(image,GreenChannel);
-      (void) GetImageRange(image,&min,&max,&image->exception);
+      (void) GetImageRange(image,&min,&max,exception);
       min+=black;
       max-=white;
       if (fabs(min-max) >= MagickEpsilon)
@@ -1024,7 +1026,7 @@ MagickExport MagickBooleanType MinMaxStretchImage(Image *image,
   if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
     {
       PushPixelChannelMap(image,BlueChannel);
-      (void) GetImageRange(image,&min,&max,&image->exception);
+      (void) GetImageRange(image,&min,&max,exception);
       min+=black;
       max-=white;
       if (fabs(min-max) >= MagickEpsilon)
@@ -1035,7 +1037,7 @@ MagickExport MagickBooleanType MinMaxStretchImage(Image *image,
        (image->colorspace == CMYKColorspace))
     {
       PushPixelChannelMap(image,BlackChannel);
-      (void) GetImageRange(image,&min,&max,&image->exception);
+      (void) GetImageRange(image,&min,&max,exception);
       min+=black;
       max-=white;
       if (fabs(min-max) >= MagickEpsilon)
@@ -1046,7 +1048,7 @@ MagickExport MagickBooleanType MinMaxStretchImage(Image *image,
        (image->matte == MagickTrue))
     {
       PushPixelChannelMap(image,AlphaChannel);
-      (void) GetImageRange(image,&min,&max,&image->exception);
+      (void) GetImageRange(image,&min,&max,exception);
       min+=black;
       max-=white;
       if (fabs(min-max) >= MagickEpsilon)
index a86f0fc7a0a157d69661eafe51b7c6b9257a9194..578902922b1a2edd03e22c84ec3ba11c9b6f3e6d 100644 (file)
@@ -31,7 +31,7 @@ extern MagickExport Image
 extern MagickExport MagickBooleanType
   IsHistogramImage(const Image *,ExceptionInfo *),
   IsPaletteImage(const Image *,ExceptionInfo *),
-  MinMaxStretchImage(Image *,const double,const double);
+  MinMaxStretchImage(Image *,const double,const double,ExceptionInfo *);
 
 extern MagickExport size_t
   GetNumberColors(const Image *,FILE *,ExceptionInfo *);
index f21ee5d2783f2222e69a0d5f8f583b4511126544..500da0bb60145bfb7a8368d9346b13a533721997 100644 (file)
@@ -12,7 +12,9 @@
 /* #undef AUTOTRACE_DELEGATE */
 
 /* Define if coders and filters are to be built as modules. */
-/* #undef BUILD_MODULES */
+#ifndef MAGICKCORE_BUILD_MODULES
+#define MAGICKCORE_BUILD_MODULES 1
+#endif
 
 /* Define if you have the bzip2 library */
 #ifndef MAGICKCORE_BZLIB_DELEGATE
@@ -78,7 +80,9 @@
 #endif
 
 /* Define if you have FFTW library */
-/* #undef FFTW_DELEGATE */
+#ifndef MAGICKCORE_FFTW_DELEGATE
+#define MAGICKCORE_FFTW_DELEGATE 1
+#endif
 
 /* Location of filter modules */
 #ifndef MAGICKCORE_FILTER_PATH
 #endif
 
 /* Define if you have the <lcms2.h> header file. */
-#ifndef MAGICKCORE_HAVE_LCMS2_H
-#define MAGICKCORE_HAVE_LCMS2_H 1
-#endif
+/* #undef HAVE_LCMS2_H */
 
 /* Define if you have the <lcms2/lcms2.h> header file. */
 /* #undef HAVE_LCMS2_LCMS2_H */
 
 /* Define if you have the <lcms.h> header file. */
-/* #undef HAVE_LCMS_H */
+#ifndef MAGICKCORE_HAVE_LCMS_H
+#define MAGICKCORE_HAVE_LCMS_H 1
+#endif
 
 /* Define if you have the <lcms/lcms.h> header file. */
 /* #undef HAVE_LCMS_LCMS_H */
 #endif
 
 /* Define if you have JBIG library */
-/* #undef JBIG_DELEGATE */
+#ifndef MAGICKCORE_JBIG_DELEGATE
+#define MAGICKCORE_JBIG_DELEGATE 1
+#endif
 
 /* Define if you have JPEG version 2 "Jasper" library */
 #ifndef MAGICKCORE_JP2_DELEGATE
 #endif
 
 /* Define if you have LQR library */
-/* #undef LQR_DELEGATE */
+#ifndef MAGICKCORE_LQR_DELEGATE
+#define MAGICKCORE_LQR_DELEGATE 1
+#endif
 
 /* Define if using libltdl to support dynamically loadable modules */
 #ifndef MAGICKCORE_LTDL_DELEGATE
 
 /* Define to the system default library search path. */
 #ifndef MAGICKCORE_LT_DLSEARCH_PATH
-#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/atlas:/usr/lib64/mysql:/usr/lib64/qt-3.3/lib:/usr/lib64/tcl8.5/tclx8.4:/usr/lib64/tcl8.5:/usr/lib/wine/:/usr/lib64/wine/:/usr/lib64/xulrunner-2"
+#define MAGICKCORE_LT_DLSEARCH_PATH "/lib64:/usr/lib64:/lib:/usr/lib:/usr/lib64/R/lib:/usr/lib64/atlas:/opt/modules/pkg/intel/f77/10.0.025/lib:/usr/local/lib:/usr/lib64/mysql:/usr/lib64/qt-3.3/lib:/usr/lib64/xulrunner-2"
 #endif
 
 /* The archive extension */
 /* #undef NO_MINUS_C_MINUS_O */
 
 /* Define if you have OPENEXR library */
-/* #undef OPENEXR_DELEGATE */
+#ifndef MAGICKCORE_OPENEXR_DELEGATE
+#define MAGICKCORE_OPENEXR_DELEGATE 1
+#endif
 
 /* Define to the address where bug reports for this package should be sent. */
 #ifndef MAGICKCORE_PACKAGE_BUGREPORT
 #endif
 
 /* Define if you have RSVG library */
-/* #undef RSVG_DELEGATE */
+#ifndef MAGICKCORE_RSVG_DELEGATE
+#define MAGICKCORE_RSVG_DELEGATE 1
+#endif
 
 /* Define to the type of arg 1 for `select'. */
 #ifndef MAGICKCORE_SELECT_TYPE_ARG1
 
 
 /* Define if you have WEBP library */
-/* #undef WEBP_DELEGATE */
+#ifndef MAGICKCORE_WEBP_DELEGATE
+#define MAGICKCORE_WEBP_DELEGATE 1
+#endif
 
 /* Define to use the Windows GDI32 library */
 /* #undef WINGDI32_DELEGATE */
 /* #undef WITH_DMALLOC */
 
 /* Define if you have WMF library */
-/* #undef WMF_DELEGATE */
+#ifndef MAGICKCORE_WMF_DELEGATE
+#define MAGICKCORE_WMF_DELEGATE 1
+#endif
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
index ee204e625a8a202f35dc576e80f6b40705224859..7ce060eb17b35d4489d6622d0b27c63726a01797 100644 (file)
@@ -397,29 +397,18 @@ MagickExport MagickBooleanType BilevelImage(Image *image,
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
-        SetPixelRed(image,(Quantum) ((MagickRealType)
-          GetPixelRed(image,q) <= threshold ? 0 : QuantumRange),q);
-      if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
-        SetPixelGreen(image,(Quantum) ((MagickRealType)
-          GetPixelGreen(image,q) <= threshold ? 0 : QuantumRange),q);
-      if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
-        SetPixelBlue(image,(Quantum) ((MagickRealType)
-          GetPixelBlue(image,q) <= threshold ? 0 : QuantumRange),q);
-      if (((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0) &&
-          (image->colorspace == CMYKColorspace))
-        SetPixelBlack(image,(Quantum) ((MagickRealType)
-          GetPixelBlack(image,q) <= threshold ? 0 : QuantumRange),q);
-      if ((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0)
-        {
-          if (image->matte == MagickFalse)
-            SetPixelAlpha(image,(Quantum) ((MagickRealType)
-              GetPixelAlpha(image,q) <= threshold ? 0 : QuantumRange),q);
-          else
-            SetPixelAlpha(image,(Quantum) ((MagickRealType)
-              GetPixelAlpha(image,q) >= threshold ? OpaqueAlpha :
-              TransparentAlpha),q);
-        }
+      register ssize_t
+        i;
+
+      for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+      {
+        PixelTrait
+          traits;
+
+        traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
+        if ((traits & UpdatePixelTrait) != 0)
+          q[i]=q[i] <= threshold ? 0 : QuantumRange;
+      }
       q+=GetPixelChannels(image);
     }
     if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
index fdc2f1be9a390f5ff7b90ad2bc64823860483b66..8ca58aa60a7f2f6f618d223e900dbe203df1e6a9 100644 (file)
@@ -27,14 +27,14 @@ extern "C" {
 */
 #define MagickPackageName "ImageMagick"
 #define MagickCopyright  "Copyright (C) 1999-2011 ImageMagick Studio LLC"
-#define MagickSVNRevision  "4861"
+#define MagickSVNRevision  "exported"
 #define MagickLibVersion  0x700
 #define MagickLibVersionText  "7.0.0"
 #define MagickLibVersionNumber  5,0,0
 #define MagickLibAddendum  "-0"
 #define MagickLibInterface  5
 #define MagickLibMinInterface  5
-#define MagickReleaseDate  "2011-08-05"
+#define MagickReleaseDate  "2011-08-09"
 #define MagickChangeDate   "20110801"
 #define MagickAuthoritativeURL  "http://www.imagemagick.org"
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
index f9369d7f765e6ec719639a27c0dce848b0bfa585..6ca3ef104e5bd51927613356d20bdcac73ceee81 100644 (file)
@@ -730,9 +730,7 @@ WandExport MagickBooleanType MagickAutoGammaImage(MagickWand *wand)
     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
   if (wand->images == (Image *) NULL)
     ThrowWandException(WandError,"ContainsNoImages",wand->name);
-  status=AutoGammaImage(wand->images);
-  if (status == MagickFalse)
-    InheritException(wand->exception,&wand->images->exception);
+  status=AutoGammaImage(wand->images,&wand->images->exception);
   return(status);
 }
 \f
@@ -770,9 +768,7 @@ WandExport MagickBooleanType MagickAutoLevelImage(MagickWand *wand)
     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
   if (wand->images == (Image *) NULL)
     ThrowWandException(WandError,"ContainsNoImages",wand->name);
-  status=AutoLevelImage(wand->images);
-  if (status == MagickFalse)
-    InheritException(wand->exception,&wand->images->exception);
+  status=AutoLevelImage(wand->images,&wand->images->exception);
   return(status);
 }
 \f
index 081b2ce46d02f24c9206941a8afbac59a51a4964..74e50fa9c0465e68c7b50821180120886f95f469 100644 (file)
@@ -807,7 +807,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
               Auto Adjust Gamma of image based on its mean
             */
             (void) SyncImageSettings(mogrify_info,*image);
-            (void) AutoGammaImage(*image);
+            (void) AutoGammaImage(*image,exception);
             break;
           }
         if (LocaleCompare("auto-level",option+1) == 0)
@@ -816,7 +816,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
               Perfectly Normalize (max/min stretch) the image
             */
             (void) SyncImageSettings(mogrify_info,*image);
-            (void) AutoLevelImage(*image);
+            (void) AutoLevelImage(*image,exception);
             break;
           }
         if (LocaleCompare("auto-orient",option+1) == 0)
index c752338e8670452c8bfe6f9427c5dbb7741a0409..34cd6e74e0120cd296cc2d69dae0d154c0d9e5ae 100644 (file)
@@ -10467,7 +10467,7 @@ Mogrify(ref,...)
           if (attribute_flag[0] != 0)
             channel=(ChannelType) argument_list[0].integer_reference;
           PushPixelChannelMap(image,channel);
-          (void) AutoGammaImage(image);
+          (void) AutoGammaImage(image,exception);
           PopPixelChannelMap(image);
           break;
         }
@@ -10476,7 +10476,7 @@ Mogrify(ref,...)
           if (attribute_flag[0] != 0)
             channel=(ChannelType) argument_list[0].integer_reference;
           PushPixelChannelMap(image,channel);
-          (void) AutoLevelImage(image);
+          (void) AutoLevelImage(image,exception);
           PopPixelChannelMap(image);
           break;
         }