From: cristy Date: Sun, 24 Jul 2011 01:43:55 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~7277 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b3e7c6c7000b5f854198b77a2491be3717b88e07;p=imagemagick --- diff --git a/Magick++/lib/Image.cpp b/Magick++/lib/Image.cpp index 8f20750d2..9a2c1b05f 100644 --- a/Magick++/lib/Image.cpp +++ b/Magick++/lib/Image.cpp @@ -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 diff --git a/MagickCore/display.c b/MagickCore/display.c index a059951ab..5c0b50839 100644 --- a/MagickCore/display.c +++ b/MagickCore/display.c @@ -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; diff --git a/MagickCore/draw.c b/MagickCore/draw.c index 975f9d5ca..bdad05803 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -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"); diff --git a/MagickCore/effect.c b/MagickCore/effect.c index 7a612aaa2..899005f65 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -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; } diff --git a/MagickCore/enhance.c b/MagickCore/enhance.c index 7422ada3d..16b29d0d4 100644 --- a/MagickCore/enhance.c +++ b/MagickCore/enhance.c @@ -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) { diff --git a/MagickCore/enhance.h b/MagickCore/enhance.h index 9965656c3..9fbb6f99c 100644 --- a/MagickCore/enhance.h +++ b/MagickCore/enhance.h @@ -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); diff --git a/MagickCore/fx.c b/MagickCore/fx.c index 836e43fd4..db0b32b71 100644 --- a/MagickCore/fx.c +++ b/MagickCore/fx.c @@ -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) diff --git a/MagickCore/image.c b/MagickCore/image.c index 6978ea9de..1a2fcb017 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -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); diff --git a/MagickCore/montage.c b/MagickCore/montage.c index 26050b943..ce2837452 100644 --- a/MagickCore/montage.c +++ b/MagickCore/montage.c @@ -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); } } diff --git a/MagickCore/version.h b/MagickCore/version.h index f2afe07b0..6f2323eec 100644 --- a/MagickCore/version.h +++ b/MagickCore/version.h @@ -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 " diff --git a/MagickWand/composite.c b/MagickWand/composite.c index ab4674b97..91fff1890 100644 --- a/MagickWand/composite.c +++ b/MagickWand/composite.c @@ -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, diff --git a/MagickWand/magick-image.c b/MagickWand/magick-image.c index 4582b6cb7..3ed737c22 100644 --- a/MagickWand/magick-image.c +++ b/MagickWand/magick-image.c @@ -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); } @@ -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); } diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c index 7eaf12115..c3fc3537b 100644 --- a/MagickWand/mogrify.c +++ b/MagickWand/mogrify.c @@ -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, diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs index 60e3b9c88..a5be949e8 100644 --- a/PerlMagick/Magick.xs +++ b/PerlMagick/Magick.xs @@ -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 */ diff --git a/coders/msl.c b/coders/msl.c index 365750644..91a26b591 100644 --- a/coders/msl.c +++ b/coders/msl.c @@ -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; } diff --git a/coders/psd.c b/coders/psd.c index 6b3e793ff..557b937ed 100644 --- a/coders/psd.c +++ b/coders/psd.c @@ -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);