]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 24 Jul 2011 01:43:55 +0000 (01:43 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 24 Jul 2011 01:43:55 +0000 (01:43 +0000)
16 files changed:
Magick++/lib/Image.cpp
MagickCore/display.c
MagickCore/draw.c
MagickCore/effect.c
MagickCore/enhance.c
MagickCore/enhance.h
MagickCore/fx.c
MagickCore/image.c
MagickCore/montage.c
MagickCore/version.h
MagickWand/composite.c
MagickWand/magick-image.c
MagickWand/mogrify.c
PerlMagick/Magick.xs
coders/msl.c
coders/psd.c

index 8f20750d2d4779df2daf6cc564e75ae03cb1326e..9a2c1b05f37836177e575edf3aac082d79950dc7 100644 (file)
@@ -1146,8 +1146,12 @@ void Magick::Image::fx ( const std::string expression,
 // Gamma correct image
 void Magick::Image::gamma ( const double gamma_ )
 {
+  ExceptionInfo exceptionInfo;
+  GetExceptionInfo( &exceptionInfo );
   modifyImage();
-  GammaImage ( image(), gamma_ );
+  GammaImage ( image(), gamma_, &exceptionInfo );
+  throwException( exceptionInfo );
+  (void) DestroyExceptionInfo( &exceptionInfo );
 }
 
 void Magick::Image::gamma ( const double gammaRed_,
@@ -1158,9 +1162,12 @@ void Magick::Image::gamma ( const double gammaRed_,
   FormatLocaleString( gamma, MaxTextExtent, "%3.6f/%3.6f/%3.6f/",
                gammaRed_, gammaGreen_, gammaBlue_);
 
+  ExceptionInfo exceptionInfo;
+  GetExceptionInfo( &exceptionInfo );
   modifyImage();
-  GammaImage ( image(), atof(gamma) );
-  throwImageException();
+  GammaImage ( image(), atof(gamma), &exceptionInfo );
+  throwException( exceptionInfo );
+  (void) DestroyExceptionInfo( &exceptionInfo );
 }
 
 // Gaussian blur image
@@ -1361,9 +1368,13 @@ void            Magick::Image::motionBlur ( const double radius_,
 // only
 void Magick::Image::negate ( const bool grayscale_ )
 {
+  ExceptionInfo exceptionInfo;
+  GetExceptionInfo( &exceptionInfo );
   modifyImage();
-  NegateImage ( image(), grayscale_ == true ? MagickTrue : MagickFalse );
-  throwImageException();
+  NegateImage ( image(), grayscale_ == true ? MagickTrue : MagickFalse, 
+    &exceptionInfo );
+  throwException( exceptionInfo );
+  (void) DestroyExceptionInfo( &exceptionInfo );
 }
 
 // Normalize image
index a059951ab14d960983b0a797085de69be67096ab..5c0b50839f95b93dae58e8595ac1986d5fbbcd4e 100644 (file)
@@ -7770,7 +7770,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
       */
       XSetCursorState(display,windows,MagickTrue);
       XCheckRefreshWindows(display,windows);
-      (void) GammaImage(*image,atof(factor));
+      (void) GammaImage(*image,atof(factor),&(*image)->exception);
       XSetCursorState(display,windows,MagickFalse);
       if (windows->image.orphan != MagickFalse)
         break;
@@ -7920,7 +7920,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info,
       */
       XSetCursorState(display,windows,MagickTrue);
       XCheckRefreshWindows(display,windows);
-      (void) NegateImage(*image,MagickFalse);
+      (void) NegateImage(*image,MagickFalse,&(*image)->exception);
       XSetCursorState(display,windows,MagickFalse);
       if (windows->image.orphan != MagickFalse)
         break;
index 975f9d5cac3d82a2c56c4ffc88cd2ac1fb1556d2..bdad05803ec9d7a0fdf3ffe46acfe278190fbe4c 100644 (file)
@@ -1431,7 +1431,7 @@ MagickExport MagickBooleanType DrawClipPath(Image *image,
   (void) QueryColorDatabase("#ffffff",&clone_info->fill,&image->exception);
   clone_info->clip_mask=(char *) NULL;
   status=DrawImage(image->clip_mask,clone_info);
-  status|=NegateImage(image->clip_mask,MagickFalse);
+  status|=NegateImage(image->clip_mask,MagickFalse,&image->exception);
   clone_info=DestroyDrawInfo(clone_info);
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(DrawEvent,GetMagickModule(),"end clip-path");
index 7a612aaa2ba7ab35997df6b4fc21912456e9ecff..899005f65d4f3cfafbcc85012c6ae392abc182d7 100644 (file)
@@ -2469,7 +2469,7 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview,
         if (preview_image == (Image *) NULL)
           break;
         gamma+=0.4f;
-        (void) GammaImage(preview_image,gamma);
+        (void) GammaImage(preview_image,gamma,exception);
         (void) FormatLocaleString(label,MaxTextExtent,"gamma %g",gamma);
         break;
       }
index 7422ada3d14b6386de03b4333307de565b280cf1..16b29d0d43294cc201869c3f571eabe081cd029e 100644 (file)
@@ -1906,7 +1906,8 @@ MagickExport MagickBooleanType EqualizeImage(Image *image)
 %
 %  The format of the GammaImage method is:
 %
-%      MagickBooleanType GammaImage(Image *image,const double gamma)
+%      MagickBooleanType GammaImage(Image *image,const double gamma,
+%        ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -1917,16 +1918,14 @@ MagickExport MagickBooleanType EqualizeImage(Image *image)
 %    o gamma: the image gamma.
 %
 */
-MagickExport MagickBooleanType GammaImage(Image *image,const double gamma)
+MagickExport MagickBooleanType GammaImage(Image *image,const double gamma,
+  ExceptionInfo *exception)
 {
 #define GammaCorrectImageTag  "GammaCorrect/Image"
 
   CacheView
     *image_view;
 
-  ExceptionInfo
-    *exception;
-
   MagickBooleanType
     status;
 
@@ -1992,7 +1991,6 @@ MagickExport MagickBooleanType GammaImage(Image *image,const double gamma)
   */
   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)
@@ -3100,7 +3098,7 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate)
 %  The format of the NegateImage method is:
 %
 %      MagickBooleanType NegateImage(Image *image,
-%        const MagickBooleanType grayscale)
+%        const MagickBooleanType grayscale,ExceptionInfo *exception)
 %
 %  A description of each parameter follows:
 %
@@ -3108,18 +3106,17 @@ MagickExport MagickBooleanType ModulateImage(Image *image,const char *modulate)
 %
 %    o grayscale: If MagickTrue, only negate grayscale pixels within the image.
 %
+%    o exception: return any errors or warnings in this structure.
+%
 */
 MagickExport MagickBooleanType NegateImage(Image *image,
-  const MagickBooleanType grayscale)
+  const MagickBooleanType grayscale,ExceptionInfo *exception)
 {
 #define NegateImageTag  "Negate/Image"
 
   CacheView
     *image_view;
 
-  ExceptionInfo
-    *exception;
-
   MagickBooleanType
     status;
 
@@ -3166,7 +3163,6 @@ MagickExport MagickBooleanType NegateImage(Image *image,
   */
   status=MagickTrue;
   progress=0;
-  exception=(&image->exception);
   image_view=AcquireCacheView(image);
   if (grayscale != MagickFalse)
     {
index 9965656c3d4c1cf233b2ee53bc2abb311cc59096..9fbb6f99c2bbe62a339f443601e94d851cca4387 100644 (file)
@@ -31,7 +31,7 @@ extern MagickExport MagickBooleanType
   ContrastImage(Image *,const MagickBooleanType),
   ContrastStretchImage(Image *,const double,const double),
   EqualizeImage(Image *image),
-  GammaImage(Image *,const double),
+  GammaImage(Image *,const double,ExceptionInfo *),
   HaldClutImage(Image *,const Image *),
   LevelImage(Image *,const double,const double,const double),
   LevelizeImage(Image *,const double,const double,const double),
@@ -39,7 +39,7 @@ extern MagickExport MagickBooleanType
     const MagickBooleanType),
   LinearStretchImage(Image *,const double,const double),
   ModulateImage(Image *,const char *),
-  NegateImage(Image *,const MagickBooleanType),
+  NegateImage(Image *,const MagickBooleanType,ExceptionInfo *),
   NormalizeImage(Image *),
   SigmoidalContrastImage(Image *,const MagickBooleanType,const double,
     const double);
index 836e43fd4e90abf3e29b69a9c41c60573b8b8f13..db0b32b7143bb4840bce9b53fe8fbb6663f43b60 100644 (file)
@@ -651,7 +651,7 @@ MagickExport Image *CharcoalImage(const Image *image,const double radius,
   if (charcoal_image == (Image *) NULL)
     return((Image *) NULL);
   (void) NormalizeImage(charcoal_image);
-  (void) NegateImage(charcoal_image,MagickFalse);
+  (void) NegateImage(charcoal_image,MagickFalse,exception);
   (void) SetImageType(charcoal_image,GrayscaleType);
   return(charcoal_image);
 }
@@ -4334,7 +4334,7 @@ MagickExport Image *SketchImage(const Image *image,const double radius,
   if (dodge_image == (Image *) NULL)
     return((Image *) NULL);
   (void) NormalizeImage(dodge_image);
-  (void) NegateImage(dodge_image,MagickFalse);
+  (void) NegateImage(dodge_image,MagickFalse,exception);
   (void) TransformImage(&dodge_image,(char *) NULL,"50%");
   sketch_image=CloneImage(image,0,0,MagickTrue,exception);
   if (sketch_image == (Image *) NULL)
index 6978ea9de4e55ec252fc8a19f0dd28734d13ad92..1a2fcb01736e9dde60da316e69168ed32bac77b3 100644 (file)
@@ -699,7 +699,7 @@ MagickExport MagickBooleanType ClipImagePath(Image *image,const char *pathname,
         return(MagickFalse);
     }
   if (inside == MagickFalse)
-    (void) NegateImage(clip_mask,MagickFalse);
+    (void) NegateImage(clip_mask,MagickFalse,&image->exception);
   (void) FormatLocaleString(clip_mask->magick_filename,MaxTextExtent,
     "8BIM:1999,2998:%s\nPS",pathname);
   (void) SetImageClipMask(image,clip_mask);
index 26050b943e6fb194dfae8d7a3492b936a1065587..ce2837452a02b465b849a0725be5a15750dd3bef 100644 (file)
@@ -759,7 +759,7 @@ MagickExport Image *MontageImageList(const ImageInfo *image_info,
               (image->compose == DstOutCompositeOp))
             {
               SetPixelChannelMap(image,AlphaChannel);
-              (void) NegateImage(image,MagickFalse);
+              (void) NegateImage(image,MagickFalse,exception);
               SetPixelChannelMap(image,DefaultChannels);
             }
         }
index f2afe07b008b5fcfc807ddd0df50a28e0b11b1c6..6f2323eece982c1b888bee1cb428d833ac35433c 100644 (file)
@@ -34,8 +34,8 @@ extern "C" {
 #define MagickLibAddendum  "-0"
 #define MagickLibInterface  5
 #define MagickLibMinInterface  5
-#define MagickReleaseDate  "2011-07-18"
-#define MagickChangeDate   "20110701"
+#define MagickReleaseDate  "2011-07-23"
+#define MagickChangeDate   "20110721"
 #define MagickAuthoritativeURL  "http://www.imagemagick.org"
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
 #define MagickOpenMPFeature  "OpenMP "
index ab4674b9780ef387a1b6acb8156afa91effe85f0..91fff18900298f47320784266f04eec81e32730d 100644 (file)
@@ -1647,7 +1647,7 @@ WandExport MagickBooleanType CompositeImageCommand(ImageInfo *image_info,
             Set a blending mask for the composition.
           */
           images->mask=mask_image;
-          (void) NegateImage(images->mask,MagickFalse);
+          (void) NegateImage(images->mask,MagickFalse,exception);
         }
     }
   status&=CompositeImageList(image_info,&images,composite_image,
index 4582b6cb73730d5bbb5053625f9c47b4d162c9af..3ed737c225aa0f68c5d5742e35667122cf47cb94 100644 (file)
@@ -3336,9 +3336,7 @@ WandExport MagickBooleanType MagickGammaImage(MagickWand *wand,
     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
   if (wand->images == (Image *) NULL)
     ThrowWandException(WandError,"ContainsNoImages",wand->name);
-  status=GammaImage(wand->images,gamma);
-  if (status == MagickFalse)
-    InheritException(wand->exception,&wand->images->exception);
+  status=GammaImage(wand->images,gamma,wand->exception);
   return(status);
 }
 \f
@@ -6672,9 +6670,7 @@ WandExport MagickBooleanType MagickNegateImage(MagickWand *wand,
     (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
   if (wand->images == (Image *) NULL)
     ThrowWandException(WandError,"ContainsNoImages",wand->name);
-  status=NegateImage(wand->images,gray);
-  if (status == MagickFalse)
-    InheritException(wand->exception,&wand->images->exception);
+  status=NegateImage(wand->images,gray,wand->exception);
   return(status);
 }
 \f
index 7eaf1211511ce582fbef00cb0262e52b52c2d948..c3fc3537b2d299032c8bea57505ae53124be031b 100644 (file)
@@ -1688,11 +1688,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
             if (*option == '+')
               (*image)->gamma=InterpretLocaleValue(argv[i+1],(char **) NULL);
             else
-              {
-                (void) GammaImage(*image,InterpretLocaleValue(argv[i+1],
-                  (char **) NULL));
-                InheritException(exception,&(*image)->exception);
-              }
+              (void) GammaImage(*image,InterpretLocaleValue(argv[i+1],
+                (char **) NULL),exception);
             break;
           }
         if ((LocaleCompare("gaussian-blur",option+1) == 0) ||
@@ -2126,8 +2123,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
           {
             (void) SyncImageSettings(mogrify_info,*image);
             (void) NegateImage(*image,*option == '+' ? MagickTrue :
-              MagickFalse);
-            InheritException(exception,&(*image)->exception);
+              MagickFalse,exception);
             break;
           }
         if (LocaleCompare("noise",option+1) == 0)
@@ -7420,7 +7416,7 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info,
                     */
                     /* POSIBLE ERROR; what if image->mask already set */
                     image->mask=mask_image;
-                    (void) NegateImage(image->mask,MagickFalse);
+                    (void) NegateImage(image->mask,MagickFalse,exception);
                   }
               }
             (void) CompositeImage(image,image->compose,composite_image,
index 60e3b9c8821fc578ee2ff485f3a615c27307cde7..a5be949e80a87176526894b17cbcd04ebac123d3 100644 (file)
@@ -8340,7 +8340,7 @@ Mogrify(ref,...)
                   */
                   image->mask=CloneImage(argument_list[10].image_reference,0,0,
                     MagickTrue,&image->exception);
-                  (void) NegateImage(image->mask,MagickFalse);
+                  (void) NegateImage(image->mask,MagickFalse,exception);
                 }
             }
           if (attribute_flag[11] != 0) /* channel */
@@ -8664,7 +8664,7 @@ Mogrify(ref,...)
               argument_list[0].string_reference=message;
             }
           (void) GammaImage(image,InterpretLocaleValue(
-            argument_list[0].string_reference,(char **) NULL));
+            argument_list[0].string_reference,(char **) NULL),exception);
           break;
         }
         case 41:  /* Map */
@@ -8782,7 +8782,7 @@ Mogrify(ref,...)
             channel=(ChannelType) argument_list[1].integer_reference;
           PushPixelChannelMap(image,channel);
           (void) NegateImage(image,argument_list[0].integer_reference != 0 ?
-            MagickTrue : MagickFalse);
+            MagickTrue : MagickFalse,exception);
           PopPixelChannelMap(image);
           break;
         }
@@ -10043,7 +10043,7 @@ Mogrify(ref,...)
             }
           image->clip_mask=CloneImage(argument_list[0].image_reference,0,0,
             MagickTrue,exception);
-          (void) NegateImage(image->clip_mask,MagickFalse);
+          (void) NegateImage(image->clip_mask,MagickFalse,exception);
           break;
         }
         case 107:  /* LinearStretch */
@@ -10085,7 +10085,7 @@ Mogrify(ref,...)
             }
           image->mask=CloneImage(argument_list[0].image_reference,0,0,
             MagickTrue,exception);
-          (void) NegateImage(image->mask,MagickFalse);
+          (void) NegateImage(image->mask,MagickFalse,exception);
           break;
         }
         case 110:  /* Polaroid */
index 365750644e8eed4520cd0ee4fe518c4672469d4f..91a26b5915da2477d934c2e9453f32784a64cc7f 100644 (file)
@@ -3229,7 +3229,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
           if (*gamma == '\0')
             (void) FormatLocaleString(gamma,MaxTextExtent,"%g,%g,%g",
               (double) pixel.red,(double) pixel.green,(double) pixel.blue);
-          (void) GammaImage(msl_info->image[n],atof(gamma));
+          (void) GammaImage(msl_info->image[n],atof(gamma),
+            &msl_info->image[n]->exception);
           break;
         }
       else if (LocaleCompare((const char *) tag,"get") == 0)
@@ -4037,7 +4038,8 @@ static void MSLStartElement(void *context,const xmlChar *tag,
               }
             }
           PushPixelChannelMap(msl_info->image[n],channel);
-          (void) NegateImage(msl_info->image[n],gray);
+          (void) NegateImage(msl_info->image[n],gray,
+            &msl_info->image[n]->exception);
           PopPixelChannelMap(msl_info->image[n]);
           break;
         }
index 6b3e793ff3e353f893a7653aef17307ff4886893..557b937edc3a611ba2fb539471e03a8e21ddbb53 100644 (file)
@@ -1324,7 +1324,7 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception)
                 }
               }
             if (layer_info[i].image->colorspace == CMYKColorspace)
-              (void) NegateImage(layer_info[i].image,MagickFalse);
+              (void) NegateImage(layer_info[i].image,MagickFalse,exception);
             status=SetImageProgress(image,LoadImagesTag,i,(MagickSizeType)
               number_layers);
             if (status == MagickFalse)
@@ -1432,7 +1432,7 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception)
   if (compression == 1)
     offsets=(MagickOffsetType *) RelinquishMagickMemory(offsets);
   if (image->colorspace == CMYKColorspace)
-    (void) NegateImage(image,MagickFalse);
+    (void) NegateImage(image,MagickFalse,exception);
   (void) CloseBlob(image);
   return(GetFirstImageInList(image));
 }
@@ -1835,7 +1835,7 @@ static MagickBooleanType WriteImageChannels(const PSDInfo *psd_info,
     else
       {
         if (next_image->colorspace == CMYKColorspace)
-          (void) NegateImage(next_image,MagickFalse);
+          (void) NegateImage(next_image,MagickFalse,&next_image->exception);
         if (next_image->compression == RLECompression)
           {
             /*
@@ -1879,7 +1879,7 @@ static MagickBooleanType WriteImageChannels(const PSDInfo *psd_info,
             MagickFalse);
         (void) SetImageProgress(image,SaveImagesTag,5,6);
         if (next_image->colorspace == CMYKColorspace)
-          (void) NegateImage(next_image,MagickFalse);
+          (void) NegateImage(next_image,MagickFalse,&next_image->exception);
       }
   if (next_image->compression == RLECompression)
     compact_pixels=(unsigned char *) RelinquishMagickMemory(compact_pixels);