]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Wed, 24 Aug 2011 01:42:24 +0000 (01:42 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Wed, 24 Aug 2011 01:42:24 +0000 (01:42 +0000)
Magick++/lib/Image.cpp
MagickCore/display.c
MagickCore/effect.c
MagickCore/enhance.c
MagickCore/enhance.h
MagickCore/magick-config.h
MagickCore/version.h
MagickWand/magick-image.c
MagickWand/mogrify.c
PerlMagick/Magick.xs
coders/msl.c

index 70978e6ce4100d820903b0b4f9e125a0996f076d..f9cd0535613bbf421b9c3c2df8b66d499a40377b 100644 (file)
@@ -1351,9 +1351,12 @@ void Magick::Image::modulate ( const double brightness_,
   FormatLocaleString( modulate, MaxTextExtent, "%3.6f,%3.6f,%3.6f",
                brightness_, saturation_, hue_);
 
+  ExceptionInfo exceptionInfo;
+  GetExceptionInfo( &exceptionInfo );
   modifyImage();
-  ModulateImage( image(), modulate );
-  throwImageException();
+  ModulateImage( image(), modulate, &exceptionInfo );
+  throwException( exceptionInfo );
+  (void) DestroyExceptionInfo( &exceptionInfo );
 }
 
 // Motion blur image with specified blur factor
@@ -1948,9 +1951,12 @@ void Magick::Image::shear ( const double xShearAngle_,
 // Contrast image
 void Magick::Image::sigmoidalContrast ( const size_t sharpen_, const double contrast, const double midpoint )
 {
+  ExceptionInfo exceptionInfo;
+  GetExceptionInfo( &exceptionInfo );
   modifyImage();
-  (void) SigmoidalContrastImage( image(), (MagickBooleanType) sharpen_, contrast, midpoint );
-  throwImageException();
+  (void) SigmoidalContrastImage( image(), (MagickBooleanType) sharpen_, contrast, midpoint, &exceptionInfo );
+  throwException( exceptionInfo );
+  (void) DestroyExceptionInfo( &exceptionInfo );
 }
 
 // Solarize image (similar to effect seen when exposing a photographic
index 27a5e1e4897e9c540eb69be1d15d049c55a77542..ca763bcd62a36d8af0590c5e68a76f3cf853c4a2 100644 (file)
@@ -7690,7 +7690,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
       (void) CopyMagickString(modulate_factors,"100.0/100.0/",MaxTextExtent);
       (void) ConcatenateMagickString(modulate_factors,hue_percent,
         MaxTextExtent);
-      (void) ModulateImage(*image,modulate_factors);
+      (void) ModulateImage(*image,modulate_factors,&(*image)->exception);
       XSetCursorState(display,windows,MagickFalse);
       if (windows->image.orphan != MagickFalse)
         break;
@@ -7718,7 +7718,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
       (void) CopyMagickString(modulate_factors,"100.0/",MaxTextExtent);
       (void) ConcatenateMagickString(modulate_factors,saturation_percent,
         MaxTextExtent);
-      (void) ModulateImage(*image,modulate_factors);
+      (void) ModulateImage(*image,modulate_factors,&(*image)->exception);
       XSetCursorState(display,windows,MagickFalse);
       if (windows->image.orphan != MagickFalse)
         break;
@@ -7745,7 +7745,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
       XCheckRefreshWindows(display,windows);
       (void) CopyMagickString(modulate_factors,brightness_percent,
         MaxTextExtent);
-      (void) ModulateImage(*image,modulate_factors);
+      (void) ModulateImage(*image,modulate_factors,&(*image)->exception);
       XSetCursorState(display,windows,MagickFalse);
       if (windows->image.orphan != MagickFalse)
         break;
@@ -7876,7 +7876,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
       if ((flags & PercentValue) != 0)
         geometry_info.sigma=1.0*QuantumRange*geometry_info.sigma/100.0;
       (void) SigmoidalContrastImage(*image,MagickTrue,geometry_info.rho,
-        geometry_info.sigma);
+        geometry_info.sigma,&(*image)->exception);
       XSetCursorState(display,windows,MagickFalse);
       if (windows->image.orphan != MagickFalse)
         break;
index 5cd7bbdd5ba0324b88891bfd2c3ac88c45d0f60d..d17519ea8c56678ca9b76d5067603689d799e333 100644 (file)
@@ -2431,7 +2431,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview,
           break;
         (void) FormatLocaleString(factor,MaxTextExtent,"100,100,%g",
           2.0*percentage);
-        (void) ModulateImage(preview_image,factor);
+        (void) ModulateImage(preview_image,factor,exception);
         (void) FormatLocaleString(label,MaxTextExtent,"modulate %s",factor);
         break;
       }
@@ -2442,7 +2442,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview,
           break;
         (void) FormatLocaleString(factor,MaxTextExtent,"100,%g",
           2.0*percentage);
-        (void) ModulateImage(preview_image,factor);
+        (void) ModulateImage(preview_image,factor,exception);
         (void) FormatLocaleString(label,MaxTextExtent,"modulate %s",factor);
         break;
       }
@@ -2452,7 +2452,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview,
         if (preview_image == (Image *) NULL)
           break;
         (void) FormatLocaleString(factor,MaxTextExtent,"%g",2.0*percentage);
-        (void) ModulateImage(preview_image,factor);
+        (void) ModulateImage(preview_image,factor,exception);
         (void) FormatLocaleString(label,MaxTextExtent,"modulate %s",factor);
         break;
       }
index 67242f4ecd3634220da486f0dc4fc5f82ec52d1d..2858ae8322bc95d0fd18b7eedcada44aebca12bd 100644 (file)
@@ -2227,7 +2227,7 @@ MagickExport MagickBooleanType LevelImage(Image *image,const double black_point,
 %                                                                             %
 %                                                                             %
 %                                                                             %
-%     L e v e l i z e I m a g e C h a n n e l                                 %
+%     L e v e l i z e I m a g e                                               %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -2533,7 +2533,8 @@ MagickExport MagickBooleanType LevelImageColors(Image *image,
 %  The format of the LinearStretchImage method is:
 %
 %      MagickBooleanType LinearStretchImage(Image *image,
-%        const double black_point,const double white_point)
+%        const double black_point,const double white_point,
+%        ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -2543,14 +2544,16 @@ MagickExport MagickBooleanType LevelImageColors(Image *image,
 %
 %    o white_point: the white point.
 %
+%    o exception: return any errors or warnings in this structure.
+%
 */
 MagickExport MagickBooleanType LinearStretchImage(Image *image,
-  const double black_point,const double white_point)
+  const double black_point,const double white_point,ExceptionInfo *exception)
 {
 #define LinearStretchImageTag  "LinearStretch/Image"
 
-  ExceptionInfo
-    *exception;
+  CacheView
+    *image_view;
 
   MagickBooleanType
     status;
@@ -2578,7 +2581,7 @@ MagickExport MagickBooleanType LinearStretchImage(Image *image,
     Form histogram.
   */
   (void) ResetMagickMemory(histogram,0,(MaxMap+1)*sizeof(*histogram));
-  exception=(&image->exception);
+  image_view=AcquireCacheView(image);
   for (y=0; y < (ssize_t) image->rows; y++)
   {
     register const Quantum
@@ -2587,15 +2590,16 @@ MagickExport MagickBooleanType LinearStretchImage(Image *image,
     register ssize_t
       x;
 
-    p=GetVirtualPixels(image,0,y,image->columns,1,exception);
+    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
     if (p == (const Quantum *) NULL)
       break;
-    for (x=(ssize_t) image->columns-1; x >= 0; x--)
+    for (x=0; x < (ssize_t) image->columns; x++)
     {
       histogram[ScaleQuantumToMap(GetPixelIntensity(image,p))]++;
       p+=GetPixelChannels(image);
     }
   }
+  image_view=DestroyCacheView(image_view);
   /*
     Find the histogram boundaries by locating the black and white point levels.
   */
@@ -2637,14 +2641,16 @@ MagickExport MagickBooleanType LinearStretchImage(Image *image,
 %
 %  The format of the ModulateImage method is:
 %
-%      MagickBooleanType ModulateImage(Image *image,const char *modulate)
+%      MagickBooleanType ModulateImage(Image *image,const char *modulate,
+%        ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
 %    o image: the image.
 %
-%    o modulate: Define the percent change in brightness, saturation, and
-%      hue.
+%    o modulate: Define the percent change in brightness, saturation, and hue.
+%
+%    o exception: return any errors or warnings in this structure.
 %
 */
 
@@ -2724,7 +2730,8 @@ static void ModulateHWB(const double percent_hue,const double percent_whiteness,
   ConvertHWBToRGB(hue,whiteness,blackness,red,green,blue);
 }
 
-MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate)
+MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate,
+  ExceptionInfo *exception)
 {
 #define ModulateImageTag  "Modulate/Image"
 
@@ -2742,9 +2749,6 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate)
     percent_hue,
     percent_saturation;
 
-  ExceptionInfo
-    *exception;
-
   GeometryInfo
     geometry_info;
 
@@ -2825,7 +2829,6 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate)
   */
   status=MagickTrue;
   progress=0;
-  exception=(&image->exception);
   image_view=AcquireCacheView(image);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
   #pragma omp parallel for schedule(dynamic,4) shared(progress,status)
@@ -3168,7 +3171,8 @@ MagickExport MagickBooleanType NormalizeImage(Image *image,
 %  The format of the SigmoidalContrastImage method is:
 %
 %      MagickBooleanType SigmoidalContrastImage(Image *image,
-%        const MagickBooleanType sharpen,const char *levels)
+%        const MagickBooleanType sharpen,const char *levels,
+%        ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -3181,18 +3185,18 @@ MagickExport MagickBooleanType NormalizeImage(Image *image,
 %
 %    o beta: midpoint of the function as a color value 0 to QuantumRange.
 %
+%    o exception: return any errors or warnings in this structure.
+%
 */
 MagickExport MagickBooleanType SigmoidalContrastImage(Image *image,
-  const MagickBooleanType sharpen,const double contrast,const double midpoint)
+  const MagickBooleanType sharpen,const double contrast,const double midpoint,
+  ExceptionInfo *exception)
 {
 #define SigmoidalContrastImageTag  "SigmoidalContrast/Image"
 
   CacheView
     *image_view;
 
-  ExceptionInfo
-    *exception;
-
   MagickBooleanType
     status;
 
@@ -3230,21 +3234,20 @@ MagickExport MagickBooleanType SigmoidalContrastImage(Image *image,
       {
         sigmoidal_map[i]=(MagickRealType) ScaleMapToQuantum((MagickRealType)
           (MaxMap*((1.0/(1.0+exp(contrast*(midpoint/(double) QuantumRange-
-          (double) i/MaxMap))))-(1.0/(1.0+exp(contrast*(midpoint/
-          (double) QuantumRange)))))/((1.0/(1.0+exp(contrast*(midpoint/
-          (double) QuantumRange-1.0))))-(1.0/(1.0+exp(contrast*(midpoint/
-          (double) QuantumRange)))))+0.5));
+          (double) i/MaxMap))))-(1.0/(1.0+exp(contrast*(midpoint/(double)
+          QuantumRange)))))/((1.0/(1.0+exp(contrast*(midpoint/(double)
+          QuantumRange-1.0))))-(1.0/(1.0+exp(contrast*(midpoint/(double)
+          QuantumRange)))))+0.5));
         continue;
       }
     sigmoidal_map[i]=(MagickRealType) ScaleMapToQuantum((MagickRealType)
-      (MaxMap*(QuantumScale*midpoint-log((1.0-(1.0/(1.0+exp(midpoint/
-      (double) QuantumRange*contrast))+((double) i/MaxMap)*((1.0/
-      (1.0+exp(contrast*(midpoint/(double) QuantumRange-1.0))))-(1.0/
-      (1.0+exp(midpoint/(double) QuantumRange*contrast))))))/
-      (1.0/(1.0+exp(midpoint/(double) QuantumRange*contrast))+
-      ((double) i/MaxMap)*((1.0/(1.0+exp(contrast*(midpoint/
-      (double) QuantumRange-1.0))))-(1.0/(1.0+exp(midpoint/
-      (double) QuantumRange*contrast))))))/contrast)));
+      (MaxMap*(QuantumScale*midpoint-log((1.0-(1.0/(1.0+exp(midpoint/(double)
+      QuantumRange*contrast))+((double) i/MaxMap)*((1.0/(1.0+exp(contrast*(
+      midpoint/(double) QuantumRange-1.0))))-(1.0/(1.0+exp(midpoint/(double)
+      QuantumRange*contrast))))))/(1.0/(1.0+exp(midpoint/(double) QuantumRange*
+      contrast))+((double) i/MaxMap)*((1.0/(1.0+exp(contrast*(midpoint/(double)
+      QuantumRange-1.0))))-(1.0/(1.0+exp(midpoint/(double) QuantumRange*
+      contrast))))))/contrast)));
   }
   if (image->storage_class == PseudoClass)
     {
@@ -3275,7 +3278,6 @@ MagickExport MagickBooleanType SigmoidalContrastImage(Image *image,
   */
   status=MagickTrue;
   progress=0;
-  exception=(&image->exception);
   image_view=AcquireCacheView(image);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
   #pragma omp parallel for schedule(dynamic,4) shared(progress,status)
@@ -3298,22 +3300,18 @@ MagickExport MagickBooleanType SigmoidalContrastImage(Image *image,
       }
     for (x=0; x < (ssize_t) image->columns; x++)
     {
-      if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0)
-        SetPixelRed(image,ClampToQuantum(sigmoidal_map[ScaleQuantumToMap(
-          GetPixelRed(image,q))]),q);
-      if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0)
-        SetPixelGreen(image,ClampToQuantum(sigmoidal_map[ScaleQuantumToMap(
-          GetPixelGreen(image,q))]),q);
-      if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0)
-        SetPixelBlue(image,ClampToQuantum(sigmoidal_map[ScaleQuantumToMap(
-          GetPixelBlue(image,q))]),q);
-      if (((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0) &&
-          (image->colorspace == CMYKColorspace))
-        SetPixelBlack(image,ClampToQuantum(sigmoidal_map[ScaleQuantumToMap(
-          GetPixelBlack(image,q))]),q);
-      if ((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0)
-        SetPixelAlpha(image,ClampToQuantum(sigmoidal_map[ScaleQuantumToMap(
-          GetPixelAlpha(image,q))]),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]=ClampToQuantum(sigmoidal_map[ScaleQuantumToMap(q[i])]);
+      }
       q+=GetPixelChannels(image);
     }
     if (SyncCacheViewAuthenticPixels(image_view,exception) == MagickFalse)
index 06e49e73ca00d6f12068ff61ada731aa8d4c1342..67c0a82c322fd713ba80a3e68864354ac262a82f 100644 (file)
@@ -37,12 +37,12 @@ extern MagickExport MagickBooleanType
   LevelizeImage(Image *,const double,const double,const double,ExceptionInfo *),
   LevelImageColors(Image *,const PixelInfo *,const PixelInfo *,
     const MagickBooleanType,ExceptionInfo *),
-  LinearStretchImage(Image *,const double,const double),
-  ModulateImage(Image *,const char *),
+  LinearStretchImage(Image *,const double,const double,ExceptionInfo *),
+  ModulateImage(Image *,const char *,ExceptionInfo *),
   NegateImage(Image *,const MagickBooleanType,ExceptionInfo *),
   NormalizeImage(Image *,ExceptionInfo *),
   SigmoidalContrastImage(Image *,const MagickBooleanType,const double,
-    const double);
+    const double,ExceptionInfo *);
 
 extern MagickExport Image
   *EnhanceImage(const Image *,ExceptionInfo *);
index d0dd863100fb82506be8f3816762e0888a07478d..5f0b18e4110cea16904a09d22f4dd07a626948a9 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 */
 /* #undef HasUMEM */
 
 /* Define if you have wmflite library */
-/* #undef HasWMFlite */
+#ifndef MAGICKCORE_HasWMFlite
+#define MAGICKCORE_HasWMFlite 1
+#endif
 
 /* ImageMagick is formally installed under prefix */
 #ifndef MAGICKCORE_INSTALLED_SUPPORT
 #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/lib/llvm:/usr/lib64/llvm:/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/lib64/llvm:/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 */
index 8a0410db2ca7860f3f6f9331bf432ba44cb2c9a4..e893ff71dcf519ccc0bd868c8ce1550307ea9c34 100644 (file)
@@ -27,7 +27,7 @@ extern "C" {
 */
 #define MagickPackageName "ImageMagick"
 #define MagickCopyright  "Copyright (C) 1999-2011 ImageMagick Studio LLC"
-#define MagickSVNRevision  "5041"
+#define MagickSVNRevision  "exported"
 #define MagickLibVersion  0x700
 #define MagickLibVersionText  "7.0.0"
 #define MagickLibVersionNumber  5,0,0
index aa4b167f5681c11f49410d89fd5dda5030d0d32f..6374ec9c7f7eba898e844daae266abb0dd4ad7a0 100644 (file)
@@ -6088,9 +6088,8 @@ WandExport MagickBooleanType MagickLinearStretchImage(MagickWand *wand,
     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
   if (wand->images == (Image *) NULL)
     ThrowWandException(WandError,"ContainsNoImages",wand->name);
-  status=LinearStretchImage(wand->images,black_point,white_point);
-  if (status == MagickFalse)
-    InheritException(wand->exception,&wand->images->exception);
+  status=LinearStretchImage(wand->images,black_point,white_point,
+    &wand->images->exception);
   return(status);
 }
 \f
@@ -6341,9 +6340,7 @@ WandExport MagickBooleanType MagickModulateImage(MagickWand *wand,
     ThrowWandException(WandError,"ContainsNoImages",wand->name);
   (void) FormatLocaleString(modulate,MaxTextExtent,"%g,%g,%g",
     brightness,saturation,hue);
-  status=ModulateImage(wand->images,modulate);
-  if (status == MagickFalse)
-    InheritException(wand->exception,&wand->images->exception);
+  status=ModulateImage(wand->images,modulate,&wand->images->exception);
   return(status);
 }
 \f
@@ -10440,9 +10437,8 @@ WandExport MagickBooleanType MagickSigmoidalContrastImage(
     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
   if (wand->images == (Image *) NULL)
     ThrowWandException(WandError,"ContainsNoImages",wand->name);
-  status=SigmoidalContrastImage(wand->images,sharpen,alpha,beta);
-  if (status == MagickFalse)
-    InheritException(wand->exception,&wand->images->exception);
+  status=SigmoidalContrastImage(wand->images,sharpen,alpha,beta,
+    &wand->images->exception);
   return(status);
 }
 \f
index cad2fedb0f4994f395bbf0b029627ec6a97a3caf..7570fc0b7570f3d5121f70b5608eb884b7f51507 100644 (file)
@@ -1934,7 +1934,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
             if ((flags & SigmaValue) == 0)
               white_point=(MagickRealType) (*image)->columns*(*image)->rows-
                 black_point;
-            (void) LinearStretchImage(*image,black_point,white_point);
+            (void) LinearStretchImage(*image,black_point,white_point,exception);
             InheritException(exception,&(*image)->exception);
             break;
           }
@@ -2044,8 +2044,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
         if (LocaleCompare("modulate",option+1) == 0)
           {
             (void) SyncImageSettings(mogrify_info,*image);
-            (void) ModulateImage(*image,argv[i+1]);
-            InheritException(exception,&(*image)->exception);
+            (void) ModulateImage(*image,argv[i+1],exception);
             break;
           }
         if (LocaleCompare("monitor",option+1) == 0)
@@ -2716,8 +2715,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
               geometry_info.sigma=(double) QuantumRange*geometry_info.sigma/
                 100.0;
             (void) SigmoidalContrastImage(*image,(*option == '-') ?
-              MagickTrue : MagickFalse,geometry_info.rho,geometry_info.sigma);
-            InheritException(exception,&(*image)->exception);
+              MagickTrue : MagickFalse,geometry_info.rho,geometry_info.sigma,
+              exception);
             break;
           }
         if (LocaleCompare("sketch",option+1) == 0)
index 9328c00af1354268283a290dee7545f69d0b5bd8..ab42522bc5e06d237ec916bcd7494cc1be9d51c4 100644 (file)
@@ -8772,7 +8772,7 @@ Mogrify(ref,...)
             }
           (void) FormatLocaleString(modulate,MaxTextExtent,"%.15g,%.15g,%.15g",
             geometry_info.rho,geometry_info.sigma,geometry_info.xi);
-          (void) ModulateImage(image,modulate);
+          (void) ModulateImage(image,modulate,exception);
           break;
         }
         case 44:  /* Negate */
@@ -9781,7 +9781,7 @@ Mogrify(ref,...)
               MagickFalse;
           channel_mask=SetPixelChannelMask(image,channel);
           (void) SigmoidalContrastImage(image,sharpen,geometry_info.rho,
-            geometry_info.sigma);
+            geometry_info.sigma,exception);
           (void) SetPixelChannelMask(image,channel_mask);
           break;
         }
@@ -10073,7 +10073,7 @@ Mogrify(ref,...)
             black_point=argument_list[1].real_reference;
           if (attribute_flag[2] != 0)
             white_point=argument_list[2].real_reference;
-          (void) LinearStretchImage(image,black_point,white_point);
+          (void) LinearStretchImage(image,black_point,white_point,exception);
           break;
         }
         case 109:  /* Mask */
index 38ec9b67b7f9b574eb08908fdc6b6fafbce8adf1..d0e942d8e53fadc4007358d925fe856be2d28a22 100644 (file)
@@ -3966,7 +3966,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
             }
           (void) FormatLocaleString(modulate,MaxTextExtent,"%g,%g,%g",
             geometry_info.rho,geometry_info.sigma,geometry_info.xi);
-          (void) ModulateImage(msl_info->image[n],modulate);
+          (void) ModulateImage(msl_info->image[n],modulate,
+            &msl_info->image[n]->exception);
           break;
         }
       ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag);