From e941a75fe8bf344bc5c06a7f74bb5173c87db115 Mon Sep 17 00:00:00 2001 From: cristy Date: Sat, 15 Oct 2011 01:52:48 +0000 Subject: [PATCH] --- Magick++/lib/Image.cpp | 80 +++++++++++++++++++++++++---------- MagickCore/animate.c | 2 +- MagickCore/annotate.c | 6 +-- MagickCore/colorspace.c | 10 +++-- MagickCore/colorspace.h | 2 +- MagickCore/compare.c | 3 +- MagickCore/composite.c | 22 ++++------ MagickCore/composite.h | 4 +- MagickCore/decorate.c | 2 +- MagickCore/display.c | 29 +++++++------ MagickCore/distort.c | 10 +++-- MagickCore/draw.c | 7 +-- MagickCore/effect.c | 4 +- MagickCore/fx.c | 18 +++++--- MagickCore/image.c | 89 ++++++++++++++++++++------------------- MagickCore/image.h | 8 ++-- MagickCore/layer.c | 46 ++++++++++++-------- MagickCore/montage.c | 7 +-- MagickCore/morphology.c | 21 +++++---- MagickCore/nt-base.c | 4 +- MagickCore/quantize.c | 14 +++--- MagickCore/segment.c | 4 +- MagickCore/threshold.c | 12 +++--- MagickCore/threshold.h | 2 +- MagickCore/transform.c | 28 ++++++------ MagickCore/transform.h | 4 +- MagickCore/xwindow.c | 49 +++++++++++++-------- MagickWand/compare.c | 2 +- MagickWand/composite.c | 8 ++-- MagickWand/magick-image.c | 74 +++++++------------------------- MagickWand/mogrify.c | 21 ++++----- PerlMagick/Magick.xs | 39 +++++++++-------- coders/aai.c | 2 +- coders/art.c | 2 +- coders/avs.c | 2 +- coders/bgr.c | 2 +- coders/bmp.c | 2 +- coders/cin.c | 2 +- coders/cip.c | 2 +- coders/cmyk.c | 2 +- coders/dib.c | 2 +- coders/ept.c | 2 +- coders/fax.c | 2 +- coders/fits.c | 2 +- coders/fpx.c | 2 +- coders/gif.c | 2 +- coders/gradient.c | 2 +- coders/gray.c | 2 +- coders/hdr.c | 2 +- coders/hrz.c | 2 +- coders/html.c | 2 +- coders/icon.c | 2 +- coders/ipl.c | 2 +- coders/jbig.c | 2 +- coders/jp2.c | 2 +- coders/jpeg.c | 2 +- coders/map.c | 2 +- coders/mat.c | 2 +- coders/mono.c | 2 +- coders/msl.c | 29 +++++++------ coders/mtv.c | 2 +- coders/otb.c | 2 +- coders/palm.c | 8 ++-- coders/pattern.c | 2 +- coders/pcd.c | 14 +++--- coders/pcl.c | 2 +- coders/pcx.c | 2 +- coders/pdb.c | 4 +- coders/pdf.c | 2 +- coders/pict.c | 9 ++-- coders/png.c | 6 +-- coders/pnm.c | 2 +- coders/ps.c | 2 +- coders/ps3.c | 2 +- coders/psd.c | 4 +- coders/rgb.c | 2 +- coders/sgi.c | 2 +- coders/sun.c | 2 +- coders/tga.c | 2 +- coders/tiff.c | 4 +- coders/tile.c | 2 +- coders/txt.c | 4 +- coders/uil.c | 2 +- coders/uyvy.c | 2 +- coders/vicar.c | 2 +- coders/viff.c | 2 +- coders/wbmp.c | 2 +- coders/xbm.c | 2 +- coders/xcf.c | 6 +-- coders/xpm.c | 4 +- coders/xwd.c | 2 +- coders/ycbcr.c | 2 +- coders/yuv.c | 4 +- 93 files changed, 437 insertions(+), 388 deletions(-) diff --git a/Magick++/lib/Image.cpp b/Magick++/lib/Image.cpp index a05df942d..203ec963b 100644 --- a/Magick++/lib/Image.cpp +++ b/Magick++/lib/Image.cpp @@ -526,9 +526,12 @@ void Magick::Image::channel ( const ChannelType channel_ ) { modifyImage(); ChannelType channel_mask = SetPixelChannelMask( image(), channel_ ); - SeparateImage ( image() ); + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); + SeparateImage ( image(), &exceptionInfo ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); (void) SetPixelChannelMap( image(), channel_mask ); - throwImageException(); } // Set or obtain modulus channel depth @@ -674,12 +677,15 @@ void Magick::Image::composite ( const Image &compositeImage_, // results in updating current image. modifyImage(); + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); CompositeImage( image(), compose_, compositeImage_.constImage(), xOffset_, - yOffset_ ); - throwImageException(); + yOffset_, &exceptionInfo ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); } void Magick::Image::composite ( const Image &compositeImage_, const Geometry &offset_, @@ -696,11 +702,14 @@ void Magick::Image::composite ( const Image &compositeImage_, &x, &y, &width, &height ); + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); CompositeImage( image(), compose_, compositeImage_.constImage(), - x, y ); - throwImageException(); + x, y, &exceptionInfo ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); } void Magick::Image::composite ( const Image &compositeImage_, const GravityType gravity_, @@ -713,11 +722,14 @@ void Magick::Image::composite ( const Image &compositeImage_, SetGeometry(compositeImage_.constImage(), &geometry); GravityAdjustGeometry(columns(), rows(), gravity_, &geometry); + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); CompositeImage( image(), compose_, compositeImage_.constImage(), - geometry.x, geometry.y ); - throwImageException(); + geometry.x, geometry.y, &exceptionInfo ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); } // Contrast image @@ -1464,7 +1476,11 @@ void Magick::Image::oilPaint ( const double radius_, const double sigma_ ) void Magick::Image::alpha ( const unsigned int alpha_ ) { modifyImage(); - SetImageAlpha( image(), alpha_ ); + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); + SetImageAlpha( image(), alpha_, &exceptionInfo ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); } // Change the color of an opaque pixel to the pen color. @@ -1599,7 +1615,8 @@ void Magick::Image::quantumOperator ( const ssize_t x_,const ssize_t y_, EvaluateImage( crop_image, operator_, rvalue_, &exceptionInfo ); (void) SetPixelChannelMap( image(), channel_mask ); (void) CompositeImage( image(), image()->matte != MagickFalse ? - OverCompositeOp : CopyCompositeOp, crop_image, geometry.x, geometry.y ); + OverCompositeOp : CopyCompositeOp, crop_image, geometry.x, geometry.y, + &exceptionInfo ); crop_image = DestroyImageList(crop_image); throwException( exceptionInfo ); (void) DestroyExceptionInfo( &exceptionInfo ); @@ -2107,34 +2124,46 @@ void Magick::Image::swirl ( const double degrees_ ) void Magick::Image::texture ( const Image &texture_ ) { modifyImage(); - TextureImage( image(), texture_.constImage() ); - throwImageException(); + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); + TextureImage( image(), texture_.constImage(), &exceptionInfo ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); } // Threshold image void Magick::Image::threshold ( const double threshold_ ) { modifyImage(); - BilevelImage( image(), threshold_ ); - throwImageException(); + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); + BilevelImage( image(), threshold_, &exceptionInfo ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); } // Transform image based on image geometry only void Magick::Image::transform ( const Geometry &imageGeometry_ ) { modifyImage(); + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); TransformImage ( &(image()), 0, - std::string(imageGeometry_).c_str() ); - throwImageException(); + std::string(imageGeometry_).c_str(), &exceptionInfo ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); } // Transform image based on image and crop geometries void Magick::Image::transform ( const Geometry &imageGeometry_, const Geometry &cropGeometry_ ) { modifyImage(); + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); TransformImage ( &(image()), std::string(cropGeometry_).c_str(), - std::string(imageGeometry_).c_str() ); - throwImageException(); + std::string(imageGeometry_).c_str(), &exceptionInfo ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); } // Add matte image to image, setting pixels matching color to transparent @@ -3342,9 +3371,13 @@ void Magick::Image::matte ( const bool matteFlag_ ) // matte channel, then create an opaque matte channel. Likewise, if // the image already has a matte channel but a matte channel is not // desired, then set the matte channel to opaque. + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); if ((matteFlag_ && !constImage()->matte) || (constImage()->matte && !matteFlag_)) - SetImageAlpha(image(),OpaqueAlpha); + SetImageAlpha(image(),OpaqueAlpha,&exceptionInfo); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); image()->matte = (MagickBooleanType) matteFlag_; } @@ -3779,8 +3812,11 @@ void Magick::Image::statistics ( ImageStatistics *statistics ) void Magick::Image::strip ( void ) { modifyImage(); - StripImage( image() ); - throwImageException(); + ExceptionInfo exceptionInfo; + GetExceptionInfo( &exceptionInfo ); + StripImage( image(), &exceptionInfo ); + throwException( exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); } // enabled/disable stroke anti-aliasing @@ -3898,7 +3934,7 @@ Magick::Image Magick::Image::strokePattern ( void ) const MagickTrue, // orphan &exceptionInfo); throwException( exceptionInfo ); - (void) DestroyExceptionInfo( &exceptionInfo ); + (void) DestroyExceptionInfo( &exceptionInfo ); texture.replaceImage( image ); } return texture; diff --git a/MagickCore/animate.c b/MagickCore/animate.c index 8d0e59ac9..d5c2a97d9 100644 --- a/MagickCore/animate.c +++ b/MagickCore/animate.c @@ -1929,7 +1929,7 @@ MagickExport Image *XAnimateImages(Display *display, /* Create X image. */ - (void) TransformImageColorspace(image_list[scene],RGBColorspace); + (void) TransformImageColorspace(image_list[scene],RGBColorspace,exception); windows->image.pixmap=(Pixmap) NULL; windows->image.matte_pixmap=(Pixmap) NULL; if ((resource_info->map_type != (char *) NULL) || diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c index 2cc29687f..ebc69f3de 100644 --- a/MagickCore/annotate.c +++ b/MagickCore/annotate.c @@ -1748,7 +1748,7 @@ static MagickBooleanType RenderPostscript(Image *image, resolution.y=resolution.x; } if (identity == MagickFalse) - (void) TransformImage(&annotate_image,"0x0",(char *) NULL); + (void) TransformImage(&annotate_image,"0x0",(char *) NULL,exception); else { RectangleInfo @@ -1762,7 +1762,7 @@ static MagickBooleanType RenderPostscript(Image *image, (void) FormatLocaleString(geometry,MaxTextExtent, "%.20gx%.20g%+.20g%+.20g",(double) crop_info.width,(double) crop_info.height,(double) crop_info.x,(double) crop_info.y); - (void) TransformImage(&annotate_image,geometry,(char *) NULL); + (void) TransformImage(&annotate_image,geometry,(char *) NULL,exception); } metrics->pixels_per_em.x=(resolution.y/DefaultResolution)* ExpandAffine(&draw_info->affine)*draw_info->pointsize; @@ -1835,7 +1835,7 @@ static MagickBooleanType RenderPostscript(Image *image, annotate_view=DestroyCacheView(annotate_view); (void) CompositeImage(image,OverCompositeOp,annotate_image, (ssize_t) ceil(offset->x-0.5),(ssize_t) ceil(offset->y-(metrics->ascent+ - metrics->descent)-0.5)); + metrics->descent)-0.5),exception); } annotate_image=DestroyImage(annotate_image); return(MagickTrue); diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c index 9b477f61f..ee31e6996 100644 --- a/MagickCore/colorspace.c +++ b/MagickCore/colorspace.c @@ -226,7 +226,7 @@ MagickExport MagickBooleanType RGBTransformImage(Image *image, break; default: { - (void) TransformImageColorspace(image,image->colorspace); + (void) TransformImageColorspace(image,image->colorspace,exception); break; } } @@ -1214,7 +1214,7 @@ MagickExport MagickBooleanType SetImageColorspace(Image *image, % The format of the TransformImageColorspace method is: % % MagickBooleanType TransformImageColorspace(Image *image, -% const ColorspaceType colorspace) +% const ColorspaceType colorspace,ExceptionInfo *exception) % % A description of each parameter follows: % @@ -1222,9 +1222,11 @@ MagickExport MagickBooleanType SetImageColorspace(Image *image, % % o colorspace: the colorspace. % +% o exception: return any errors or warnings in this structure. +% */ MagickExport MagickBooleanType TransformImageColorspace(Image *image, - const ColorspaceType colorspace) + const ColorspaceType colorspace,ExceptionInfo *exception) { MagickBooleanType status; @@ -1234,7 +1236,7 @@ MagickExport MagickBooleanType TransformImageColorspace(Image *image, if (image->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); if (colorspace == UndefinedColorspace) - return(SetImageColorspace(image,colorspace,&image->exception)); + return(SetImageColorspace(image,colorspace,exception)); if (image->colorspace == colorspace) return(MagickTrue); if ((colorspace == RGBColorspace) || (colorspace == TransparentColorspace)) diff --git a/MagickCore/colorspace.h b/MagickCore/colorspace.h index 22cf4a04f..fdc998103 100644 --- a/MagickCore/colorspace.h +++ b/MagickCore/colorspace.h @@ -52,7 +52,7 @@ typedef enum extern MagickExport MagickBooleanType RGBTransformImage(Image *,const ColorspaceType), SetImageColorspace(Image *,const ColorspaceType,ExceptionInfo *), - TransformImageColorspace(Image *,const ColorspaceType), + TransformImageColorspace(Image *,const ColorspaceType,ExceptionInfo *), TransformRGBImage(Image *,const ColorspaceType); #if defined(__cplusplus) || defined(c_plusplus) diff --git a/MagickCore/compare.c b/MagickCore/compare.c index dc9f62307..cea264772 100644 --- a/MagickCore/compare.c +++ b/MagickCore/compare.c @@ -265,7 +265,8 @@ MagickExport Image *CompareImages(Image *image,const Image *reconstruct_image, highlight_view=DestroyCacheView(highlight_view); reconstruct_view=DestroyCacheView(reconstruct_view); image_view=DestroyCacheView(image_view); - (void) CompositeImage(difference_image,image->compose,highlight_image,0,0); + (void) CompositeImage(difference_image,image->compose,highlight_image,0,0, + exception); highlight_image=DestroyImage(highlight_image); if (status == MagickFalse) difference_image=DestroyImage(difference_image); diff --git a/MagickCore/composite.c b/MagickCore/composite.c index b893c5128..77f153ff3 100644 --- a/MagickCore/composite.c +++ b/MagickCore/composite.c @@ -93,7 +93,7 @@ % % MagickBooleanType CompositeImage(Image *image, % const CompositeOperator compose,Image *composite_image, -% const ssize_t x_offset,const ssize_t y_offset) +% const ssize_t x_offset,const ssize_t y_offset,ExceptionInfo *exception) % % A description of each parameter follows: % @@ -130,6 +130,8 @@ % % Previous to IM v6.5.3-3 this was called "modify-outside-overlay" % +% o exception: return any errors or warnings in this structure. +% */ static inline double MagickMin(const double x,const double y) @@ -1545,7 +1547,7 @@ static void HSBComposite(const double hue,const double saturation, MagickExport MagickBooleanType CompositeImage(Image *image, const CompositeOperator compose,const Image *composite_image, - const ssize_t x_offset,const ssize_t y_offset) + const ssize_t x_offset,const ssize_t y_offset,ExceptionInfo *exception) { #define CompositeImageTag "Composite/Image" @@ -1559,9 +1561,6 @@ MagickExport MagickBooleanType CompositeImage(Image *image, double sans; - ExceptionInfo - *exception; - GeometryInfo geometry_info; @@ -1602,7 +1601,6 @@ MagickExport MagickBooleanType CompositeImage(Image *image, (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); assert(composite_image != (Image *) NULL); assert(composite_image->signature == MagickSignature); - exception=(&image->exception); if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse) return(MagickFalse); GetPixelInfo(image,&zero); @@ -2738,7 +2736,8 @@ MagickExport MagickBooleanType CompositeImage(Image *image, % % The format of the TextureImage method is: % -% MagickBooleanType TextureImage(Image *image,const Image *texture) +% MagickBooleanType TextureImage(Image *image,const Image *texture, +% ExceptionInfo *exception) % % A description of each parameter follows: % @@ -2747,7 +2746,8 @@ MagickExport MagickBooleanType CompositeImage(Image *image, % o texture: This image is the texture to layer on the background. % */ -MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture) +MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture, + ExceptionInfo *exception) { #define TextureImageTag "Texture/Image" @@ -2755,9 +2755,6 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture) *image_view, *texture_view; - ExceptionInfo - *exception; - MagickBooleanType status; @@ -2771,7 +2768,6 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture) if (texture == (const Image *) NULL) return(MagickFalse); (void) SetImageVirtualPixelMethod(texture,TileVirtualPixelMethod); - exception=(&image->exception); if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse) return(MagickFalse); status=MagickTrue; @@ -2798,7 +2794,7 @@ MagickExport MagickBooleanType TextureImage(Image *image,const Image *texture) thread_status; thread_status=CompositeImage(image,image->compose,texture,x+ - texture->tile_offset.x,y+texture->tile_offset.y); + texture->tile_offset.x,y+texture->tile_offset.y,exception); if (thread_status == MagickFalse) { status=thread_status; diff --git a/MagickCore/composite.h b/MagickCore/composite.h index 19dea3714..a3ffabe78 100644 --- a/MagickCore/composite.h +++ b/MagickCore/composite.h @@ -96,8 +96,8 @@ typedef enum extern MagickExport MagickBooleanType CompositeImage(Image *,const CompositeOperator,const Image *,const ssize_t, - const ssize_t), - TextureImage(Image *,const Image *); + const ssize_t,ExceptionInfo *), + TextureImage(Image *,const Image *,ExceptionInfo *); #if defined(__cplusplus) || defined(c_plusplus) } diff --git a/MagickCore/decorate.c b/MagickCore/decorate.c index ea9d68dfa..03582b136 100644 --- a/MagickCore/decorate.c +++ b/MagickCore/decorate.c @@ -600,7 +600,7 @@ MagickExport Image *FrameImage(const Image *image,const FrameInfo *frame_info, frame_info->inner_bevel); y=(ssize_t) (frame_info->outer_bevel+(frame_info->y-bevel_width)+ frame_info->inner_bevel); - (void) CompositeImage(frame_image,compose,image,x,y); + (void) CompositeImage(frame_image,compose,image,x,y,exception); } return(frame_image); } diff --git a/MagickCore/display.c b/MagickCore/display.c index fb7190279..cca29f2a9 100644 --- a/MagickCore/display.c +++ b/MagickCore/display.c @@ -4358,7 +4358,7 @@ static MagickBooleanType XCompositeImage(Display *display, Composite image with X Image window. */ (void) CompositeImage(image,compose,composite_image,composite_info.x, - composite_info.y); + composite_info.y,exception); composite_image=DestroyImage(composite_image); XSetCursorState(display,windows,MagickFalse); /* @@ -6483,10 +6483,11 @@ static void XImageCache(Display *display,XResourceInfo *resource_info, windows->image.window_changes.height=(int) cache_image->rows; (void) FormatLocaleString(image_geometry,MaxTextExtent,"%dx%d!", windows->image.ximage->width,windows->image.ximage->height); - (void) TransformImage(image,windows->image.crop_geometry,image_geometry); + (void) TransformImage(image,windows->image.crop_geometry,image_geometry, + exception); if (windows->image.crop_geometry != (char *) NULL) - windows->image.crop_geometry=(char *) - RelinquishMagickMemory(windows->image.crop_geometry); + windows->image.crop_geometry=(char *) RelinquishMagickMemory( + windows->image.crop_geometry); windows->image.crop_geometry=cache_image->geometry; if (redo_image != (Image *) NULL) redo_image=DestroyImage(redo_image); @@ -7446,10 +7447,11 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, */ (void) FormatLocaleString(image_geometry,MaxTextExtent,"%dx%d!", windows->image.ximage->width,windows->image.ximage->height); - (void) TransformImage(image,windows->image.crop_geometry,image_geometry); + (void) TransformImage(image,windows->image.crop_geometry,image_geometry, + exception); if (windows->image.crop_geometry != (char *) NULL) - windows->image.crop_geometry=(char *) - RelinquishMagickMemory(windows->image.crop_geometry); + windows->image.crop_geometry=(char *) RelinquishMagickMemory( + windows->image.crop_geometry); windows->image.x=0; windows->image.y=0; XConfigureImageColormap(display,resource_info,windows,*image); @@ -8306,7 +8308,7 @@ static Image *XMagickCommand(Display *display,XResourceInfo *resource_info, XSetCursorState(display,windows,MagickTrue); XCheckRefreshWindows(display,windows); threshold=SiPrefixToDouble(factor,QuantumRange); - (void) BilevelImage(*image,threshold); + (void) BilevelImage(*image,threshold,exception); XSetCursorState(display,windows,MagickFalse); if (windows->image.orphan != MagickFalse) break; @@ -10921,7 +10923,8 @@ static MagickBooleanType XPasteImage(Display *display, /* Paste image with X Image window. */ - (void) CompositeImage(image,compose,paste_image,paste_info.x,paste_info.y); + (void) CompositeImage(image,compose,paste_image,paste_info.x,paste_info.y, + exception); paste_image=DestroyImage(paste_image); XSetCursorState(display,windows,MagickFalse); /* @@ -11004,7 +11007,8 @@ static MagickBooleanType XPrintImage(Display *display, return(MagickFalse); (void) FormatLocaleString(geometry,MaxTextExtent,"%dx%d!", windows->image.ximage->width,windows->image.ximage->height); - (void) TransformImage(&print_image,windows->image.crop_geometry,geometry); + (void) TransformImage(&print_image,windows->image.crop_geometry,geometry, + exception); /* Print image. */ @@ -11654,7 +11658,7 @@ static MagickBooleanType XROIImage(Display *display, SaveToUndoBufferCommand,image,exception); windows->image.orphan=MagickFalse; (void) CompositeImage(*image,CopyCompositeOp,roi_image, - crop_info.x,crop_info.y); + crop_info.x,crop_info.y,exception); roi_image=DestroyImage(roi_image); (void) SetImageProgressMonitor(*image,progress_monitor, (*image)->client_data); @@ -12623,7 +12627,8 @@ static MagickBooleanType XSaveImage(Display *display, return(MagickFalse); (void) FormatLocaleString(geometry,MaxTextExtent,"%dx%d!", windows->image.ximage->width,windows->image.ximage->height); - (void) TransformImage(&save_image,windows->image.crop_geometry,geometry); + (void) TransformImage(&save_image,windows->image.crop_geometry,geometry, + exception); /* Write image. */ diff --git a/MagickCore/distort.c b/MagickCore/distort.c index 6ab3fa9de..5aa50d4e4 100644 --- a/MagickCore/distort.c +++ b/MagickCore/distort.c @@ -1474,7 +1474,7 @@ MagickExport Image *DistortResizeImage(const Image *image, distort alpha channel separately */ channel_mask=SetPixelChannelMask(tmp_image,AlphaChannel); - (void) SeparateImage(tmp_image); + (void) SeparateImage(tmp_image,exception); SetPixelChannelMap(tmp_image,channel_mask); (void) SetImageAlphaChannel(tmp_image,OpaqueAlphaChannel,exception); resize_alpha=DistortImage(tmp_image,AffineDistortion,12,distort_args, @@ -1498,10 +1498,12 @@ MagickExport Image *DistortResizeImage(const Image *image, return((Image *) NULL); } /* replace resize images alpha with the separally distorted alpha */ - (void) SetImageAlphaChannel(resize_image,DeactivateAlphaChannel,exception); - (void) SetImageAlphaChannel(resize_alpha,DeactivateAlphaChannel,exception); + (void) SetImageAlphaChannel(resize_image,DeactivateAlphaChannel, + exception); + (void) SetImageAlphaChannel(resize_alpha,DeactivateAlphaChannel, + exception); (void) CompositeImage(resize_image,CopyOpacityCompositeOp,resize_alpha, - 0,0); + 0,0,exception); resize_alpha=DestroyImage(resize_alpha); } (void) SetImageVirtualPixelMethod(resize_image,vp_save); diff --git a/MagickCore/draw.c b/MagickCore/draw.c index 2b234b2a4..bf0096912 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -4481,13 +4481,14 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image, (void) FormatLocaleString(geometry,MaxTextExtent,"%gx%g!", primitive_info[1].point.x,primitive_info[1].point.y); composite_image->filter=image->filter; - (void) TransformImage(&composite_image,(char *) NULL,geometry); + (void) TransformImage(&composite_image,(char *) NULL,geometry, + exception); } if (composite_image->matte == MagickFalse) (void) SetImageAlphaChannel(composite_image,OpaqueAlphaChannel, exception); if (draw_info->alpha != OpaqueAlpha) - (void) SetImageAlpha(composite_image,draw_info->alpha); + (void) SetImageAlpha(composite_image,draw_info->alpha,exception); SetGeometry(image,&geometry); image->gravity=draw_info->gravity; geometry.x=x; @@ -4505,7 +4506,7 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image, (void) DrawAffineImage(image,composite_image,&affine); else (void) CompositeImage(image,draw_info->compose,composite_image, - geometry.x,geometry.y); + geometry.x,geometry.y,exception); composite_image=DestroyImage(composite_image); break; } diff --git a/MagickCore/effect.c b/MagickCore/effect.c index b7757a6f3..26492ee9b 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -2615,8 +2615,8 @@ MagickExport Image *PreviewImage(const Image *image,const PreviewType preview, preview_image=CloneImage(thumbnail,0,0,MagickTrue,exception); if (preview_image == (Image *) NULL) break; - (void) BilevelImage(thumbnail, - (double) (percentage*((MagickRealType) QuantumRange+1.0))/100.0); + (void) BilevelImage(thumbnail,(double) (percentage*((MagickRealType) + QuantumRange+1.0))/100.0,exception); (void) FormatLocaleString(label,MaxTextExtent,"threshold %g", (double) (percentage*((MagickRealType) QuantumRange+1.0))/100.0); break; diff --git a/MagickCore/fx.c b/MagickCore/fx.c index fada3412d..1752666ab 100644 --- a/MagickCore/fx.c +++ b/MagickCore/fx.c @@ -3980,11 +3980,12 @@ MagickExport Image *PolaroidImage(const Image *image,const DrawInfo *draw_info, } picture_image->background_color=image->border_color; (void) SetImageBackgroundColor(picture_image); - (void) CompositeImage(picture_image,OverCompositeOp,image,quantum,quantum); + (void) CompositeImage(picture_image,OverCompositeOp,image,quantum,quantum, + exception); if (caption_image != (Image *) NULL) { (void) CompositeImage(picture_image,OverCompositeOp,caption_image, - quantum,(ssize_t) (image->rows+3*quantum/2)); + quantum,(ssize_t) (image->rows+3*quantum/2),exception); caption_image=DestroyImage(caption_image); } (void) QueryColorCompliance("none",AllCompliance, @@ -4024,7 +4025,7 @@ MagickExport Image *PolaroidImage(const Image *image,const DrawInfo *draw_info, } polaroid_image=flop_image; (void) CompositeImage(polaroid_image,OverCompositeOp,picture_image, - (ssize_t) (-0.01*picture_image->columns/2.0),0L); + (ssize_t) (-0.01*picture_image->columns/2.0),0L,exception); picture_image=DestroyImage(picture_image); (void) QueryColorCompliance("none",AllCompliance, &polaroid_image->background_color,exception); @@ -4419,14 +4420,15 @@ MagickExport Image *SketchImage(const Image *image,const double radius, return((Image *) NULL); (void) NormalizeImage(dodge_image,exception); (void) NegateImage(dodge_image,MagickFalse,exception); - (void) TransformImage(&dodge_image,(char *) NULL,"50%"); + (void) TransformImage(&dodge_image,(char *) NULL,"50%",exception); sketch_image=CloneImage(image,0,0,MagickTrue,exception); if (sketch_image == (Image *) NULL) { dodge_image=DestroyImage(dodge_image); return((Image *) NULL); } - (void) CompositeImage(sketch_image,ColorDodgeCompositeOp,dodge_image,0,0); + (void) CompositeImage(sketch_image,ColorDodgeCompositeOp,dodge_image,0,0, + exception); dodge_image=DestroyImage(dodge_image); blend_image=CloneImage(image,0,0,MagickTrue,exception); if (blend_image == (Image *) NULL) @@ -4435,7 +4437,8 @@ MagickExport Image *SketchImage(const Image *image,const double radius, return((Image *) NULL); } (void) SetImageArtifact(blend_image,"compose:args","20x80"); - (void) CompositeImage(sketch_image,BlendCompositeOp,blend_image,0,0); + (void) CompositeImage(sketch_image,BlendCompositeOp,blend_image,0,0, + exception); blend_image=DestroyImage(blend_image); return(sketch_image); } @@ -5383,7 +5386,8 @@ MagickExport Image *VignetteImage(const Image *image,const double radius, return((Image *) NULL); } blur_image->matte=MagickFalse; - (void) CompositeImage(canvas_image,CopyOpacityCompositeOp,blur_image,0,0); + (void) CompositeImage(canvas_image,CopyOpacityCompositeOp,blur_image,0,0, + exception); blur_image=DestroyImage(blur_image); vignette_image=MergeImageLayers(canvas_image,FlattenLayer,exception); canvas_image=DestroyImage(canvas_image); diff --git a/MagickCore/image.c b/MagickCore/image.c index 476668e65..bf79a4787 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -2256,23 +2256,23 @@ MagickExport MagickBooleanType ResetImagePage(Image *image,const char *page) % % The format of the SeparateImage method is: % -% MagickBooleanType SeparateImage(Image *image) +% MagickBooleanType SeparateImage(Image *image,ExceptionInfo *exception) % % A description of each parameter follows: % % o image: the image. % +% o exception: return any errors or warnings in this structure. +% */ -MagickExport MagickBooleanType SeparateImage(Image *image) +MagickExport MagickBooleanType SeparateImage(Image *image, + ExceptionInfo *exception) { #define SeparateImageTag "Separate/Image" CacheView *image_view; - ExceptionInfo - *exception; - MagickBooleanType status; @@ -2286,7 +2286,6 @@ MagickExport MagickBooleanType SeparateImage(Image *image) assert(image->signature == MagickSignature); if (image->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); - exception=(&image->exception); if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse) return(MagickFalse); /* @@ -2414,7 +2413,7 @@ MagickExport Image *SeparateImages(const Image *image,ExceptionInfo *exception) { channel_mask=SetPixelChannelMask(separate_image, (ChannelType) (1 << i)); - (void) SeparateImage(separate_image); + (void) SeparateImage(separate_image,exception); (void) SetPixelChannelMap(separate_image,channel_mask); AppendImageToList(&images,separate_image); } @@ -2547,7 +2546,7 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, the alpha channel. */ channel_mask=SetPixelChannelMask(image,GrayChannel); - status=SeparateImage(image); + status=SeparateImage(image,exception); (void) SetPixelChannelMask(image,channel_mask); image->matte=MagickTrue; /* make sure transparency is now on! */ if (alpha_type == ShapeAlphaChannel) @@ -2568,20 +2567,20 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, case ExtractAlphaChannel: { channel_mask=SetPixelChannelMask(image,AlphaChannel); - status=SeparateImage(image); + status=SeparateImage(image,exception); (void) SetPixelChannelMask(image,channel_mask); image->matte=MagickFalse; break; } case OpaqueAlphaChannel: { - status=SetImageAlpha(image,OpaqueAlpha); + status=SetImageAlpha(image,OpaqueAlpha,exception); image->matte=MagickTrue; break; } case TransparentAlphaChannel: { - status=SetImageAlpha(image,TransparentAlpha); + status=SetImageAlpha(image,TransparentAlpha,exception); image->matte=MagickTrue; break; } @@ -2589,7 +2588,7 @@ MagickExport MagickBooleanType SetImageAlphaChannel(Image *image, { if (image->matte == MagickFalse) { - status=SetImageAlpha(image,OpaqueAlpha); + status=SetImageAlpha(image,OpaqueAlpha,exception); image->matte=MagickTrue; } break; @@ -2709,7 +2708,8 @@ MagickExport MagickBooleanType SetImageBackgroundColor(Image *image) % % The format of the SetImageColor method is: % -% MagickBooleanType SetImageColor(Image *image,const PixelInfo *color) +% MagickBooleanType SetImageColor(Image *image,const PixelInfo *color, +% ExeptionInfo *exception) % % A description of each parameter follows: % @@ -2717,16 +2717,15 @@ MagickExport MagickBooleanType SetImageBackgroundColor(Image *image) % % o background: the image color. % +% o exception: return any errors or warnings in this structure. +% */ MagickExport MagickBooleanType SetImageColor(Image *image, - const PixelInfo *color) + const PixelInfo *color,ExceptionInfo *exception) { CacheView *image_view; - ExceptionInfo - *exception; - MagickBooleanType status; @@ -2743,7 +2742,6 @@ MagickExport MagickBooleanType SetImageColor(Image *image, image->fuzz=color->fuzz; image->depth=color->depth; status=MagickTrue; - exception=(&image->exception); image_view=AcquireCacheView(image); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(dynamic,4) shared(status) @@ -3377,11 +3375,12 @@ MagickExport MagickBooleanType SetImageMask(Image *image, % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % -% SetImageAlphs() sets the alpha levels of the image. +% SetImageAlpha() sets the alpha levels of the image. % % The format of the SetImageAlpha method is: % -% MagickBooleanType SetImageAlpha(Image *image,const Quantum alpha) +% MagickBooleanType SetImageAlpha(Image *image,const Quantum alpha, +% ExceptionInfo *exception) % % A description of each parameter follows: % @@ -3391,14 +3390,12 @@ MagickExport MagickBooleanType SetImageMask(Image *image, % fully transparent. % */ -MagickExport MagickBooleanType SetImageAlpha(Image *image,const Quantum alpha) +MagickExport MagickBooleanType SetImageAlpha(Image *image,const Quantum alpha, + ExceptionInfo *exception) { CacheView *image_view; - ExceptionInfo - *exception; - MagickBooleanType status; @@ -3411,7 +3408,6 @@ MagickExport MagickBooleanType SetImageAlpha(Image *image,const Quantum alpha) assert(image->signature == MagickSignature); image->matte=alpha != OpaqueAlpha ? MagickTrue : MagickFalse; status=MagickTrue; - exception=(&image->exception); image_view=AcquireCacheView(image); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(dynamic,4) shared(status) @@ -3506,7 +3502,7 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type, case BilevelType: { if (IsImageGray(image,&image->exception) == MagickFalse) - status=TransformImageColorspace(image,GRAYColorspace); + status=TransformImageColorspace(image,GRAYColorspace,exception); if (IsImageMonochrome(image,&image->exception) == MagickFalse) { quantize_info=AcquireQuantizeInfo(image_info); @@ -3521,14 +3517,14 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type, case GrayscaleType: { if (IsImageGray(image,&image->exception) == MagickFalse) - status=TransformImageColorspace(image,GRAYColorspace); + status=TransformImageColorspace(image,GRAYColorspace,exception); image->matte=MagickFalse; break; } case GrayscaleMatteType: { if (IsImageGray(image,&image->exception) == MagickFalse) - status=TransformImageColorspace(image,GRAYColorspace); + status=TransformImageColorspace(image,GRAYColorspace,exception); if (image->matte == MagickFalse) (void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception); break; @@ -3536,7 +3532,7 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type, case PaletteType: { if (IsRGBColorspace(image->colorspace) == MagickFalse) - status=TransformImageColorspace(image,RGBColorspace); + status=TransformImageColorspace(image,RGBColorspace,exception); if ((image->storage_class == DirectClass) || (image->colors > 256)) { quantize_info=AcquireQuantizeInfo(image_info); @@ -3553,11 +3549,11 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type, channel_mask; if (IsRGBColorspace(image->colorspace) == MagickFalse) - status=TransformImageColorspace(image,RGBColorspace); + status=TransformImageColorspace(image,RGBColorspace,exception); if (image->matte == MagickFalse) (void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception); channel_mask=SetPixelChannelMask(image,AlphaChannel); - (void) BilevelImage(image,(double) QuantumRange/2.0); + (void) BilevelImage(image,(double) QuantumRange/2.0,exception); (void) SetPixelChannelMask(image,channel_mask); quantize_info=AcquireQuantizeInfo(image_info); status=QuantizeImage(quantize_info,image,exception); @@ -3567,7 +3563,7 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type, case PaletteMatteType: { if (IsRGBColorspace(image->colorspace) == MagickFalse) - status=TransformImageColorspace(image,RGBColorspace); + status=TransformImageColorspace(image,RGBColorspace,exception); if (image->matte == MagickFalse) (void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception); quantize_info=AcquireQuantizeInfo(image_info); @@ -3579,7 +3575,7 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type, case TrueColorType: { if (IsRGBColorspace(image->colorspace) == MagickFalse) - status=TransformImageColorspace(image,RGBColorspace); + status=TransformImageColorspace(image,RGBColorspace,exception); if (image->storage_class != DirectClass) status=SetImageStorageClass(image,DirectClass,&image->exception); image->matte=MagickFalse; @@ -3588,7 +3584,7 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type, case TrueColorMatteType: { if (IsRGBColorspace(image->colorspace) == MagickFalse) - status=TransformImageColorspace(image,RGBColorspace); + status=TransformImageColorspace(image,RGBColorspace,exception); if (image->storage_class != DirectClass) status=SetImageStorageClass(image,DirectClass,&image->exception); if (image->matte == MagickFalse) @@ -3600,8 +3596,8 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type, if (image->colorspace != CMYKColorspace) { if (IsRGBColorspace(image->colorspace) == MagickFalse) - status=TransformImageColorspace(image,RGBColorspace); - status=TransformImageColorspace(image,CMYKColorspace); + status=TransformImageColorspace(image,RGBColorspace,exception); + status=TransformImageColorspace(image,CMYKColorspace,exception); } if (image->storage_class != DirectClass) status=SetImageStorageClass(image,DirectClass,&image->exception); @@ -3613,8 +3609,8 @@ MagickExport MagickBooleanType SetImageType(Image *image,const ImageType type, if (image->colorspace != CMYKColorspace) { if (IsRGBColorspace(image->colorspace) == MagickFalse) - status=TransformImageColorspace(image,RGBColorspace); - status=TransformImageColorspace(image,CMYKColorspace); + status=TransformImageColorspace(image,RGBColorspace,exception); + status=TransformImageColorspace(image,CMYKColorspace,exception); } if (image->storage_class != DirectClass) status=SetImageStorageClass(image,DirectClass,&image->exception); @@ -3948,7 +3944,8 @@ MagickExport Image *SmushImages(const Image *images, x_offset-=SmushXGap(smush_image,image,offset,exception); y_offset-=geometry.y; } - status=CompositeImage(smush_image,OverCompositeOp,image,x_offset,y_offset); + status=CompositeImage(smush_image,OverCompositeOp,image,x_offset,y_offset, + exception); proceed=SetImageProgress(image,SmushImageTag,n,number_images); if (proceed == MagickFalse) break; @@ -3989,24 +3986,30 @@ MagickExport Image *SmushImages(const Image *images, % % The format of the StripImage method is: % -% MagickBooleanType StripImage(Image *image) +% MagickBooleanType StripImage(Image *image,ExceptionInfo *exception) % % A description of each parameter follows: % % o image: the image. % +% o exception: return any errors or warnings in this structure. +% */ -MagickExport MagickBooleanType StripImage(Image *image) +MagickExport MagickBooleanType StripImage(Image *image,ExceptionInfo *exception) { + MagickBooleanType + status; + assert(image != (Image *) NULL); if (image->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"..."); + (void) exception; DestroyImageProfiles(image); (void) DeleteImageProperty(image,"comment"); (void) DeleteImageProperty(image,"date:create"); (void) DeleteImageProperty(image,"date:modify"); - (void) SetImageArtifact(image,"png:include-chunk","none,trns,gama"); - return(MagickTrue); + status=SetImageArtifact(image,"png:include-chunk","none,trns,gama"); + return(status); } /* diff --git a/MagickCore/image.h b/MagickCore/image.h index 3cdc1a8d4..86e04bd7a 100644 --- a/MagickCore/image.h +++ b/MagickCore/image.h @@ -525,18 +525,18 @@ extern MagickExport MagickBooleanType ListMagickInfo(FILE *,ExceptionInfo *), ModifyImage(Image **,ExceptionInfo *), ResetImagePage(Image *,const char *), - SeparateImage(Image *), - SetImageAlpha(Image *,const Quantum), + SeparateImage(Image *,ExceptionInfo *), + SetImageAlpha(Image *,const Quantum,ExceptionInfo *), SetImageAlphaChannel(Image *,const AlphaChannelType,ExceptionInfo *), SetImageBackgroundColor(Image *), SetImageClipMask(Image *,const Image *,ExceptionInfo *), - SetImageColor(Image *,const PixelInfo *), + SetImageColor(Image *,const PixelInfo *,ExceptionInfo *), SetImageExtent(Image *,const size_t,const size_t,ExceptionInfo *), SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *), SetImageMask(Image *,const Image *,ExceptionInfo *), SetImageStorageClass(Image *,const ClassType,ExceptionInfo *), SetImageType(Image *,const ImageType,ExceptionInfo *), - StripImage(Image *), + StripImage(Image *,ExceptionInfo *), SyncImage(Image *), SyncImageSettings(const ImageInfo *,Image *), SyncImagesSettings(ImageInfo *,Image *); diff --git a/MagickCore/layer.c b/MagickCore/layer.c index a9c9a7861..92ab7a046 100644 --- a/MagickCore/layer.c +++ b/MagickCore/layer.c @@ -280,7 +280,7 @@ MagickExport Image *CoalesceImages(const Image *image,ExceptionInfo *exception) */ dispose_image=CloneImage(coalesce_image,0,0,MagickTrue,exception); (void) CompositeImage(coalesce_image,CopyCompositeOp,next,next->page.x, - next->page.y); + next->page.y,exception); next=GetNextImageInList(next); for ( ; next != (Image *) NULL; next=GetNextImageInList(next)) { @@ -332,7 +332,8 @@ MagickExport Image *CoalesceImages(const Image *image,ExceptionInfo *exception) coalesce_image=GetNextImageInList(coalesce_image); coalesce_image->matte=MagickTrue; (void) CompositeImage(coalesce_image,next->matte != MagickFalse ? - OverCompositeOp : CopyCompositeOp,next,next->page.x,next->page.y); + OverCompositeOp : CopyCompositeOp,next,next->page.x,next->page.y, + exception); (void) CloneImageProfiles(coalesce_image,next); (void) CloneImageProperties(coalesce_image,next); (void) CloneImageArtifacts(coalesce_image,next); @@ -425,7 +426,8 @@ MagickExport Image *DisposeImages(const Image *image,ExceptionInfo *exception) return((Image *) NULL); } (void) CompositeImage(current_image,curr->matte != MagickFalse ? - OverCompositeOp : CopyCompositeOp,curr,curr->page.x,curr->page.y); + OverCompositeOp : CopyCompositeOp,curr,curr->page.x,curr->page.y, + exception); /* Handle Background dispose: image is displayed for the delay period. @@ -796,7 +798,8 @@ MagickExport Image *CompareImagesLayers(const Image *image, image_a->page=next->page; image_a->page.x=0; image_a->page.y=0; - (void) CompositeImage(image_a,CopyCompositeOp,next,next->page.x,next->page.y); + (void) CompositeImage(image_a,CopyCompositeOp,next,next->page.x,next->page.y, + exception); /* Compute the bounding box of changes for the later images */ @@ -812,7 +815,7 @@ MagickExport Image *CompareImagesLayers(const Image *image, return((Image *) NULL); } (void) CompositeImage(image_a,CopyCompositeOp,next,next->page.x, - next->page.y); + next->page.y,exception); bounds[i]=CompareImagesBounds(image_b,image_a,method,exception); image_b=DestroyImage(image_b); @@ -1500,7 +1503,8 @@ MagickExport void OptimizeImageTransparency(const Image *image, return; } (void) CompositeImage(current_image,next->matte != MagickFalse ? - OverCompositeOp : CopyCompositeOp, next,next->page.x,next->page.y); + OverCompositeOp : CopyCompositeOp, next,next->page.x,next->page.y, + exception); /* At this point the image would be displayed, for the delay period ** @@ -1543,7 +1547,7 @@ MagickExport void OptimizeImageTransparency(const Image *image, next=GetNextImageInList(next); if ( next != (Image *) NULL ) { (void) CompositeImage(next, ChangeMaskCompositeOp, - dispose_image, -(next->page.x), -(next->page.y) ); + dispose_image, -(next->page.x), -(next->page.y), exception ); } } dispose_image=DestroyImage(dispose_image); @@ -1747,13 +1751,15 @@ MagickExport void RemoveZeroDelayLayers(Image **images, % o exception: return any errors or warnings in this structure. % */ + static inline void CompositeCanvas(Image *destination, - const CompositeOperator compose, Image *source,ssize_t x_offset, - ssize_t y_offset ) + const CompositeOperator compose,Image *source,ssize_t x_offset, + ssize_t y_offset,ExceptionInfo *exception) { x_offset+=source->page.x-destination->page.x; y_offset+=source->page.y-destination->page.y; - (void) CompositeImage(destination,compose,source,x_offset,y_offset); + (void) CompositeImage(destination,compose,source,x_offset,y_offset, + exception); } MagickExport void CompositeLayers(Image *destination, @@ -1768,7 +1774,7 @@ MagickExport void CompositeLayers(Image *destination, assert(exception->signature == MagickSignature); if (source->debug != MagickFalse || destination->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s - %s", - source->filename, destination->filename); + source->filename, destination->filename); /* Overlay single source image over destation image/list @@ -1776,7 +1782,8 @@ MagickExport void CompositeLayers(Image *destination, if ( source->previous == (Image *) NULL && source->next == (Image *) NULL ) while ( destination != (Image *) NULL ) { - CompositeCanvas(destination, compose, source, x_offset, y_offset); + CompositeCanvas(destination, compose, source, x_offset, y_offset, + exception); destination=GetNextImageInList(destination); } @@ -1792,7 +1799,8 @@ MagickExport void CompositeLayers(Image *destination, { Image *dest = CloneImage(destination,0,0,MagickTrue,exception); - CompositeCanvas(destination, compose, source, x_offset, y_offset); + CompositeCanvas(destination, compose, source, x_offset, y_offset, + exception); /* copy source image attributes ? */ if ( source->next != (Image *) NULL ) { @@ -1807,7 +1815,8 @@ MagickExport void CompositeLayers(Image *destination, CloneImage(dest,0,0,MagickTrue,exception)); destination=GetLastImageInList(destination); - CompositeCanvas(destination, compose, source, x_offset, y_offset); + CompositeCanvas(destination, compose, source, x_offset, y_offset, + exception); destination->delay = source->delay; destination->iterations = source->iterations; source=GetNextImageInList(source); @@ -1822,7 +1831,8 @@ MagickExport void CompositeLayers(Image *destination, else while ( source != (Image *) NULL && destination != (Image *) NULL ) { - CompositeCanvas(destination, compose, source, x_offset, y_offset); + CompositeCanvas(destination, compose, source, x_offset, y_offset, + exception); source=GetNextImageInList(source); destination=GetNextImageInList(destination); } @@ -1881,8 +1891,8 @@ MagickExport void CompositeLayers(Image *destination, % o exception: return any errors or warnings in this structure. % */ -MagickExport Image *MergeImageLayers(Image *image, - const ImageLayerMethod method,ExceptionInfo *exception) +MagickExport Image *MergeImageLayers(Image *image,const ImageLayerMethod method, + ExceptionInfo *exception) { #define MergeLayersTag "Merge/Layers" @@ -2017,7 +2027,7 @@ MagickExport Image *MergeImageLayers(Image *image, for (scene=0; scene < (ssize_t) number_images; scene++) { (void) CompositeImage(canvas,image->compose,image,image->page.x- - canvas->page.x,image->page.y-canvas->page.y); + canvas->page.x,image->page.y-canvas->page.y,exception); proceed=SetImageProgress(image,MergeLayersTag,(MagickOffsetType) scene, number_images); if (proceed == MagickFalse) diff --git a/MagickCore/montage.c b/MagickCore/montage.c index 044b5e2b8..f695ea2dd 100644 --- a/MagickCore/montage.c +++ b/MagickCore/montage.c @@ -679,7 +679,7 @@ MagickExport Image *MontageImageList(const ImageInfo *image_info, progress_monitor=SetImageProgressMonitor(montage,(MagickProgressMonitor) NULL,montage->client_data); if (texture != (Image *) NULL) - (void) TextureImage(montage,texture); + (void) TextureImage(montage,texture,exception); if (montage_info->title != (char *) NULL) { char @@ -822,13 +822,14 @@ MagickExport Image *MontageImageList(const ImageInfo *image_info, shadow_image=ShadowImage(image,80.0,2.0,5,5,exception); if (shadow_image != (Image *) NULL) { - (void) CompositeImage(shadow_image,OverCompositeOp,image,0,0); + (void) CompositeImage(shadow_image,OverCompositeOp,image,0,0, + exception); image=DestroyImage(image); image=shadow_image; } } (void) CompositeImage(montage,image->compose,image,x_offset+x, - y_offset+y); + y_offset+y,exception); value=GetImageProperty(image,"label",exception); if (value != (const char *) NULL) { diff --git a/MagickCore/morphology.c b/MagickCore/morphology.c index 414c6c2e6..6eeb38904 100644 --- a/MagickCore/morphology.c +++ b/MagickCore/morphology.c @@ -3864,7 +3864,8 @@ MagickPrivate Image *MorphologyApply(const Image *image, /* Preserve the alpha channel of input image - but turned off */ (void) SetImageAlphaChannel(rslt_image, DeactivateAlphaChannel, exception); - (void) CompositeImage(rslt_image, CopyOpacityCompositeOp, image, 0, 0); + (void) CompositeImage(rslt_image, CopyOpacityCompositeOp, image, 0, 0, + exception); (void) SetImageAlphaChannel(rslt_image, DeactivateAlphaChannel, exception); } @@ -4087,18 +4088,21 @@ MagickPrivate Image *MorphologyApply(const Image *image, case TopHatMorphology: case BottomHatMorphology: if ( verbose == MagickTrue ) - (void) FormatLocaleFile(stderr, "\n%s: Difference with original image", - CommandOptionToMnemonic(MagickMorphologyOptions, method) ); + (void) FormatLocaleFile(stderr, + "\n%s: Difference with original image",CommandOptionToMnemonic( + MagickMorphologyOptions, method) ); curr_image->sync=MagickFalse; - (void) CompositeImage(curr_image,DifferenceCompositeOp,image,0,0); + (void) CompositeImage(curr_image,DifferenceCompositeOp,image,0,0, + exception); break; case EdgeMorphology: if ( verbose == MagickTrue ) - (void) FormatLocaleFile(stderr, "\n%s: Difference of Dilate and Erode", - CommandOptionToMnemonic(MagickMorphologyOptions, method) ); + (void) FormatLocaleFile(stderr, + "\n%s: Difference of Dilate and Erode",CommandOptionToMnemonic( + MagickMorphologyOptions, method) ); curr_image->sync=MagickFalse; (void) CompositeImage(curr_image,DifferenceCompositeOp,save_image,0, - 0); + 0,exception); save_image = DestroyImage(save_image); /* finished with save image */ break; default: @@ -4135,7 +4139,8 @@ MagickPrivate Image *MorphologyApply(const Image *image, (void) FormatLocaleFile(stderr, " (compose \"%s\")", CommandOptionToMnemonic(MagickComposeOptions, rslt_compose) ); rslt_image->sync=MagickFalse; - (void) CompositeImage(rslt_image, rslt_compose, curr_image, 0, 0); + (void) CompositeImage(rslt_image, rslt_compose, curr_image, 0, 0, + exception); curr_image = DestroyImage(curr_image); curr_image = (Image *) image; /* continue with original image */ } diff --git a/MagickCore/nt-base.c b/MagickCore/nt-base.c index 4ba6a9d13..b8a088ecd 100644 --- a/MagickCore/nt-base.c +++ b/MagickCore/nt-base.c @@ -216,7 +216,7 @@ MagickExport void *CropImageToHBITMAP(Image *image, if ( bitmap.bmBits == NULL ) bitmap.bmBits = bitmap_bits; if (IsRGBColorspace(image->colorspace) == MagickFalse) - TransformImageColorspace(image,RGBColorspace); + TransformImageColorspace(image,RGBColorspace,exception); /* Extract crop image. */ @@ -561,7 +561,7 @@ MagickExport void *ImageToHBITMAP(Image *image) q=bitmap_bits; if (bitmap.bmBits == NULL) bitmap.bmBits=bitmap_bits; - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); exception=(&image->exception); for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c index 1a4e8e7cc..f453eee5a 100644 --- a/MagickCore/quantize.c +++ b/MagickCore/quantize.c @@ -511,12 +511,12 @@ static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info, if ((cube_info->quantize_info->colorspace != UndefinedColorspace) && (cube_info->quantize_info->colorspace != CMYKColorspace)) (void) TransformImageColorspace((Image *) image, - cube_info->quantize_info->colorspace); + cube_info->quantize_info->colorspace,exception); else if ((image->colorspace != GRAYColorspace) && (IsRGBColorspace(image->colorspace) == MagickFalse) && (image->colorspace != CMYColorspace)) - (void) TransformImageColorspace((Image *) image,RGBColorspace); + (void) TransformImageColorspace((Image *) image,RGBColorspace,exception); if (AcquireImageColormap(image,cube_info->colors,exception) == MagickFalse) ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed", image->filename); @@ -679,7 +679,7 @@ static MagickBooleanType AssignImageColors(Image *image,CubeInfo *cube_info, (void) SyncImage(image); if ((cube_info->quantize_info->colorspace != UndefinedColorspace) && (cube_info->quantize_info->colorspace != CMYKColorspace)) - (void) TransformImageColorspace((Image *) image,RGBColorspace); + (void) TransformImageColorspace((Image *) image,RGBColorspace,exception); return(MagickTrue); } @@ -797,12 +797,12 @@ static MagickBooleanType ClassifyImageColors(CubeInfo *cube_info, if ((cube_info->quantize_info->colorspace != UndefinedColorspace) && (cube_info->quantize_info->colorspace != CMYKColorspace)) (void) TransformImageColorspace((Image *) image, - cube_info->quantize_info->colorspace); + cube_info->quantize_info->colorspace,exception); else if ((image->colorspace != GRAYColorspace) && (image->colorspace != CMYColorspace) && (IsRGBColorspace(image->colorspace) == MagickFalse)) - (void) TransformImageColorspace((Image *) image,RGBColorspace); + (void) TransformImageColorspace((Image *) image,RGBColorspace,exception); midpoint.red=(MagickRealType) QuantumRange/2.0; midpoint.green=(MagickRealType) QuantumRange/2.0; midpoint.blue=(MagickRealType) QuantumRange/2.0; @@ -997,7 +997,7 @@ static MagickBooleanType ClassifyImageColors(CubeInfo *cube_info, image_view=DestroyCacheView(image_view); if ((cube_info->quantize_info->colorspace != UndefinedColorspace) && (cube_info->quantize_info->colorspace != CMYKColorspace)) - (void) TransformImageColorspace((Image *) image,RGBColorspace); + (void) TransformImageColorspace((Image *) image,RGBColorspace,exception); return(MagickTrue); } @@ -3241,7 +3241,7 @@ static MagickBooleanType SetGrayscaleImage(Image *image, assert(image != (Image *) NULL); assert(image->signature == MagickSignature); if (image->type != GrayscaleType) - (void) TransformImageColorspace(image,GRAYColorspace); + (void) TransformImageColorspace(image,GRAYColorspace,exception); colormap_index=(ssize_t *) AcquireQuantumMemory(MaxMap+1, sizeof(*colormap_index)); if (colormap_index == (ssize_t *) NULL) diff --git a/MagickCore/segment.c b/MagickCore/segment.c index a56976d88..b5e196856 100644 --- a/MagickCore/segment.c +++ b/MagickCore/segment.c @@ -1830,7 +1830,7 @@ MagickExport MagickBooleanType SegmentImage(Image *image, } } if (IsRGBColorspace(colorspace) == MagickFalse) - (void) TransformImageColorspace(image,colorspace); + (void) TransformImageColorspace(image,colorspace,exception); /* Initialize histogram. */ @@ -1847,7 +1847,7 @@ MagickExport MagickBooleanType SegmentImage(Image *image, status=Classify(image,extrema,cluster_threshold,WeightingExponent,verbose, exception); if (IsRGBColorspace(colorspace) == MagickFalse) - (void) TransformImageColorspace(image,colorspace); + (void) TransformImageColorspace(image,colorspace,exception); /* Relinquish resources. */ diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c index 5cd022b70..22690fb5e 100644 --- a/MagickCore/threshold.c +++ b/MagickCore/threshold.c @@ -339,7 +339,8 @@ MagickExport Image *AdaptiveThresholdImage(const Image *image, % % The format of the BilevelImage method is: % -% MagickBooleanType BilevelImage(Image *image,const double threshold) +% MagickBooleanType BilevelImage(Image *image,const double threshold, +% ExceptionInfo *exception) % % A description of each parameter follows: % @@ -347,20 +348,20 @@ MagickExport Image *AdaptiveThresholdImage(const Image *image, % % o threshold: define the threshold values. % +% o exception: return any errors or warnings in this structure. +% % Aside: You can get the same results as operator using LevelImages() % with the 'threshold' value for both the black_point and the white_point. % */ -MagickExport MagickBooleanType BilevelImage(Image *image,const double threshold) +MagickExport MagickBooleanType BilevelImage(Image *image,const double threshold, + ExceptionInfo *exception) { #define ThresholdImageTag "Threshold/Image" CacheView *image_view; - ExceptionInfo - *exception; - MagickBooleanType status; @@ -374,7 +375,6 @@ MagickExport MagickBooleanType BilevelImage(Image *image,const double threshold) assert(image->signature == MagickSignature); if (image->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); - exception=(&image->exception); if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse) return(MagickFalse); /* diff --git a/MagickCore/threshold.h b/MagickCore/threshold.h index c99d4b69c..e37e5072d 100644 --- a/MagickCore/threshold.h +++ b/MagickCore/threshold.h @@ -34,7 +34,7 @@ extern MagickExport ThresholdMap *GetThresholdMap(const char *,ExceptionInfo *); extern MagickExport MagickBooleanType - BilevelImage(Image *,const double), + BilevelImage(Image *,const double,ExceptionInfo *), BlackThresholdImage(Image *,const char *,ExceptionInfo *), ClampImage(Image *,ExceptionInfo *), ListThresholdMaps(FILE *,ExceptionInfo *), diff --git a/MagickCore/transform.c b/MagickCore/transform.c index 745afc44b..7f692769b 100644 --- a/MagickCore/transform.c +++ b/MagickCore/transform.c @@ -1068,7 +1068,7 @@ MagickExport Image *ExtentImage(const Image *image, extent_image->matte=MagickTrue; (void) SetImageBackgroundColor(extent_image); (void) CompositeImage(extent_image,image->compose,image,-geometry->x, - -geometry->y); + -geometry->y,exception); return(extent_image); } @@ -1951,7 +1951,7 @@ MagickExport Image *SpliceImage(const Image *image, % The format of the TransformImage method is: % % MagickBooleanType TransformImage(Image **image,const char *crop_geometry, -% const char *image_geometry) +% const char *image_geometry,ExceptionInfo *exception) % % A description of each parameter follows: % @@ -1963,9 +1963,11 @@ MagickExport Image *SpliceImage(const Image *image, % o image_geometry: An image geometry string. This geometry defines the % final size of the image. % +% o exception: return any errors or warnings in this structure. +% */ MagickExport MagickBooleanType TransformImage(Image **image, - const char *crop_geometry,const char *image_geometry) + const char *crop_geometry,const char *image_geometry,ExceptionInfo *exception) { Image *resize_image, @@ -1990,9 +1992,9 @@ MagickExport MagickBooleanType TransformImage(Image **image, /* Crop image to a user specified size. */ - crop_image=CropImageToTiles(*image,crop_geometry,&(*image)->exception); + crop_image=CropImageToTiles(*image,crop_geometry,exception); if (crop_image == (Image *) NULL) - transform_image=CloneImage(*image,0,0,MagickTrue,&(*image)->exception); + transform_image=CloneImage(*image,0,0,MagickTrue,exception); else { transform_image=DestroyImage(transform_image); @@ -2006,14 +2008,13 @@ MagickExport MagickBooleanType TransformImage(Image **image, /* Scale image to a user specified size. */ - flags=ParseRegionGeometry(transform_image,image_geometry,&geometry, - &(*image)->exception); + flags=ParseRegionGeometry(transform_image,image_geometry,&geometry,exception); (void) flags; if ((transform_image->columns == geometry.width) && (transform_image->rows == geometry.height)) return(MagickTrue); resize_image=ResizeImage(transform_image,geometry.width,geometry.height, - transform_image->filter,transform_image->blur,&(*image)->exception); + transform_image->filter,transform_image->blur,exception); if (resize_image == (Image *) NULL) return(MagickFalse); transform_image=DestroyImage(transform_image); @@ -2038,7 +2039,8 @@ MagickExport MagickBooleanType TransformImage(Image **image, % The format of the TransformImage method is: % % MagickBooleanType TransformImages(Image **image, -% const char *crop_geometry,const char *image_geometry) +% const char *crop_geometry,const char *image_geometry, +% ExceptionInfo *exception) % % A description of each parameter follows: % @@ -2050,9 +2052,11 @@ MagickExport MagickBooleanType TransformImage(Image **image, % o image_geometry: An image geometry string. This geometry defines the % final size of the image. % +% o exception: return any errors or warnings in this structure. +% */ MagickExport MagickBooleanType TransformImages(Image **images, - const char *crop_geometry,const char *image_geometry) + const char *crop_geometry,const char *image_geometry,ExceptionInfo *exception) { Image *image, @@ -2070,7 +2074,7 @@ MagickExport MagickBooleanType TransformImages(Image **images, if ((*images)->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s", (*images)->filename); - image_list=ImageListToArray(*images,&(*images)->exception); + image_list=ImageListToArray(*images,exception); if (image_list == (Image **) NULL) return(MagickFalse); status=MagickTrue; @@ -2078,7 +2082,7 @@ MagickExport MagickBooleanType TransformImages(Image **images, for (i=0; image_list[i] != (Image *) NULL; i++) { image=image_list[i]; - status|=TransformImage(&image,crop_geometry,image_geometry); + status|=TransformImage(&image,crop_geometry,image_geometry,exception); AppendImageToList(&transform_images,image); } *images=transform_images; diff --git a/MagickCore/transform.h b/MagickCore/transform.h index 07098aa7e..260ed34cf 100644 --- a/MagickCore/transform.h +++ b/MagickCore/transform.h @@ -39,8 +39,8 @@ extern MagickExport Image *TrimImage(const Image *,ExceptionInfo *); extern MagickExport MagickBooleanType - TransformImage(Image **,const char *,const char *), - TransformImages(Image **,const char *,const char *); + TransformImage(Image **,const char *,const char *,ExceptionInfo *), + TransformImages(Image **,const char *,const char *,ExceptionInfo *); #if defined(__cplusplus) || defined(c_plusplus) } diff --git a/MagickCore/xwindow.c b/MagickCore/xwindow.c index 4a232a838..464941573 100644 --- a/MagickCore/xwindow.c +++ b/MagickCore/xwindow.c @@ -214,9 +214,9 @@ static MagickBooleanType static void XMakeImageLSBFirst(const XResourceInfo *,const XWindowInfo *,Image *, - XImage *,XImage *), + XImage *,XImage *,ExceptionInfo *), XMakeImageMSBFirst(const XResourceInfo *,const XWindowInfo *,Image *, - XImage *,XImage *); + XImage *,XImage *,ExceptionInfo *); static Window XSelectWindow(Display *,RectangleInfo *); @@ -633,7 +633,8 @@ MagickPrivate MagickBooleanType XAnnotateImage(Display *display, */ (void) FormatLocaleString(image_geometry,MaxTextExtent,"%ux%u", width,height); - (void) TransformImage(&annotate_image,(char *) NULL,image_geometry); + (void) TransformImage(&annotate_image,(char *) NULL,image_geometry, + exception); } if (annotate_info->degrees != 0.0) { @@ -702,7 +703,8 @@ MagickPrivate MagickBooleanType XAnnotateImage(Display *display, (void) XParseGeometry(annotate_info->geometry,&x,&y,&width,&height); matte=image->matte; (void) CompositeImage(image,annotate_image->matte != MagickFalse ? - OverCompositeOp : CopyCompositeOp,annotate_image,(ssize_t) x,(ssize_t) y); + OverCompositeOp : CopyCompositeOp,annotate_image,(ssize_t) x,(ssize_t) y, + exception); image->matte=matte; annotate_image=DestroyImage(annotate_image); return(MagickTrue); @@ -2547,7 +2549,8 @@ MagickPrivate MagickBooleanType XDrawImage(Display *display, */ (void) FormatLocaleString(image_geometry,MaxTextExtent,"%ux%u", width,height); - (void) TransformImage(&draw_image,(char *) NULL,image_geometry); + (void) TransformImage(&draw_image,(char *) NULL,image_geometry, + exception); } if (draw_info->degrees != 0.0) { @@ -2638,12 +2641,12 @@ MagickPrivate MagickBooleanType XDrawImage(Display *display, (void) XParseGeometry(draw_info->geometry,&x,&y,&width,&height); if (draw_info->stencil == TransparentStencil) (void) CompositeImage(image,CopyOpacityCompositeOp,draw_image,(ssize_t) x, - (ssize_t) y); + (ssize_t) y,exception); else { matte=image->matte; (void) CompositeImage(image,OverCompositeOp,draw_image,(ssize_t) x, - (ssize_t) y); + (ssize_t) y,exception); image->matte=matte; } draw_image=DestroyImage(draw_image); @@ -4519,7 +4522,7 @@ static Image *XGetWindowImage(Display *display,const Window window, if (y_offset < 0) y_offset=0; (void) CompositeImage(image,CopyCompositeOp,composite_image,(ssize_t) - x_offset,(ssize_t) y_offset); + x_offset,(ssize_t) y_offset,exception); } /* Relinquish resources. @@ -4527,8 +4530,8 @@ static Image *XGetWindowImage(Display *display,const Window window, while (colormap_info != (ColormapInfo *) NULL) { next=colormap_info->next; - colormap_info->colors=(XColor *) - RelinquishMagickMemory(colormap_info->colors); + colormap_info->colors=(XColor *) RelinquishMagickMemory( + colormap_info->colors); colormap_info=(ColormapInfo *) RelinquishMagickMemory(colormap_info); colormap_info=next; } @@ -5778,10 +5781,10 @@ MagickPrivate MagickBooleanType XMakeImage(Display *display, if ((ximage->byte_order == LSBFirst) || ((ximage->format == XYBitmap) && (ximage->bitmap_bit_order == LSBFirst))) XMakeImageLSBFirst(resource_info,window,window->image,ximage, - matte_image); + matte_image,exception); else XMakeImageMSBFirst(resource_info,window,window->image,ximage, - matte_image); + matte_image,exception); } if (window->matte_image != (XImage *) NULL) { @@ -5841,7 +5844,8 @@ MagickPrivate MagickBooleanType XMakeImage(Display *display, % % The format of the XMakeImageLSBFirst method is: % -% void XMakeImageLSBFirst(Display *display,XWindows *windows) +% void XMakeImageLSBFirst(Display *display,XWindows *windows, +% ExceptionInfo *exception) % % A description of each parameter follows: % @@ -5857,9 +5861,12 @@ MagickPrivate MagickBooleanType XMakeImage(Display *display, % o matte_image: Specifies a pointer to a XImage structure; returned from % XCreateImage. % +% o exception: return any errors or warnings in this structure. +% */ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, - const XWindowInfo *window,Image *image,XImage *ximage,XImage *matte_image) + const XWindowInfo *window,Image *image,XImage *ximage,XImage *matte_image, + ExceptionInfo *exception) { CacheView *canvas_view; @@ -5925,7 +5932,8 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, { canvas=CloneImage(image,0,0,MagickTrue,&image->exception); if (canvas != (Image *) NULL) - (void) CompositeImage(canvas,DstOverCompositeOp,pattern,0,0); + (void) CompositeImage(canvas,DstOverCompositeOp,pattern,0,0, + exception); pattern=DestroyImage(pattern); } } @@ -6468,7 +6476,8 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, % % The format of the XMakeImageMSBFirst method is: % -% XMakeImageMSBFirst(resource_info,window,image,ximage,matte_image) +% XMakeImageMSBFirst(resource_info,window,image,ximage,matte_image, +% ExceptionInfo *exception) % % A description of each parameter follows: % @@ -6484,9 +6493,12 @@ static void XMakeImageLSBFirst(const XResourceInfo *resource_info, % o matte_image: Specifies a pointer to a XImage structure; returned from % XCreateImage. % +% o exception: return any errors or warnings in this structure. +% */ static void XMakeImageMSBFirst(const XResourceInfo *resource_info, - const XWindowInfo *window,Image *image,XImage *ximage,XImage *matte_image) + const XWindowInfo *window,Image *image,XImage *ximage,XImage *matte_image, + ExceptionInfo *exception) { CacheView *canvas_view; @@ -6552,7 +6564,8 @@ static void XMakeImageMSBFirst(const XResourceInfo *resource_info, { canvas=CloneImage(image,0,0,MagickTrue,&image->exception); if (canvas != (Image *) NULL) - (void) CompositeImage(canvas,DstOverCompositeOp,pattern,0,0); + (void) CompositeImage(canvas,DstOverCompositeOp,pattern,0,0, + exception); pattern=DestroyImage(pattern); } } diff --git a/MagickWand/compare.c b/MagickWand/compare.c index 5e9d77801..aef830125 100644 --- a/MagickWand/compare.c +++ b/MagickWand/compare.c @@ -971,7 +971,7 @@ WandExport MagickBooleanType CompareImagesCommand(ImageInfo *image_info, else { (void) CompositeImage(composite_image,CopyCompositeOp, - reconstruct_image,offset.x,offset.y); + reconstruct_image,offset.x,offset.y,exception); difference_image=CompareImages(image,composite_image,metric, &distortion,exception); if (difference_image != (Image *) NULL) diff --git a/MagickWand/composite.c b/MagickWand/composite.c index d7f08f048..00e6c40e2 100644 --- a/MagickWand/composite.c +++ b/MagickWand/composite.c @@ -194,7 +194,7 @@ static MagickBooleanType CompositeImageList(ImageInfo *image_info,Image **image, for (y=0; y < (ssize_t) (*image)->rows; y+=(ssize_t) composite_image->rows) for (x=0; x < (ssize_t) (*image)->columns; x+=(ssize_t) columns) status&=CompositeImage(*image,composite_options->compose, - composite_image,x,y); + composite_image,x,y,exception); GetImageException(*image,exception); } else @@ -217,7 +217,7 @@ static MagickBooleanType CompositeImageList(ImageInfo *image_info,Image **image, Digitally composite image. */ status&=CompositeImage(*image,composite_options->compose, - composite_image,geometry.x,geometry.y); + composite_image,geometry.x,geometry.y,exception); GetImageException(*image,exception); } } @@ -1630,7 +1630,7 @@ WandExport MagickBooleanType CompositeImageCommand(ImageInfo *image_info, RemoveImageStack(composite_image); RemoveImageStack(images); (void) TransformImage(&composite_image,(char *) NULL, - composite_image->geometry); + composite_image->geometry,exception); RemoveImageStack(mask_image); if (mask_image != (Image *) NULL) { @@ -1641,7 +1641,7 @@ WandExport MagickBooleanType CompositeImageCommand(ImageInfo *image_info, Merge Y displacement into X displacement image. */ (void) CompositeImage(composite_image,CopyGreenCompositeOp,mask_image, - 0,0); + 0,0,exception); mask_image=DestroyImage(mask_image); } else diff --git a/MagickWand/magick-image.c b/MagickWand/magick-image.c index 58d21d1d8..ad6206dce 100644 --- a/MagickWand/magick-image.c +++ b/MagickWand/magick-image.c @@ -1796,9 +1796,8 @@ WandExport MagickBooleanType MagickCompositeImage(MagickWand *wand, if ((wand->images == (Image *) NULL) || (composite_wand->images == (Image *) NULL)) ThrowWandException(WandError,"ContainsNoImages",wand->name); - status=CompositeImage(wand->images,compose,composite_wand->images,x,y); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); + status=CompositeImage(wand->images,compose,composite_wand->images,x,y, + wand->exception); return(status); } @@ -2879,8 +2878,6 @@ WandExport MagickBooleanType MagickExportImagePixels(MagickWand *wand, ThrowWandException(WandError,"ContainsNoImages",wand->name); status=ExportImagePixels(wand->images,x,y,columns,rows,map, storage,pixels,wand->exception); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); return(status); } @@ -7671,9 +7668,6 @@ WandExport MagickBooleanType MagickRandomThresholdImage(MagickWand *wand, char threshold[MaxTextExtent]; - MagickBooleanType - status; - assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) @@ -7681,10 +7675,7 @@ WandExport MagickBooleanType MagickRandomThresholdImage(MagickWand *wand, if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); (void) FormatLocaleString(threshold,MaxTextExtent,"%gx%g",low,high); - status=RandomThresholdImage(wand->images,threshold,wand->exception); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); - return(status); + return(RandomThresholdImage(wand->images,threshold,wand->exception)); } /* @@ -8423,19 +8414,13 @@ WandExport MagickBooleanType MagickSelectiveBlurImage(MagickWand *wand, */ WandExport MagickBooleanType MagickSeparateImage(MagickWand *wand) { - MagickBooleanType - status; - assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); - status=SeparateImage(wand->images); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); - return(status); + return(SeparateImage(wand->images,wand->exception)); } /* @@ -8799,9 +8784,6 @@ WandExport MagickBooleanType MagickSetImageClipMask(MagickWand *wand, WandExport MagickBooleanType MagickSetImageColor(MagickWand *wand, const PixelWand *color) { - MagickBooleanType - status; - PixelInfo pixel; @@ -8810,10 +8792,7 @@ WandExport MagickBooleanType MagickSetImageColor(MagickWand *wand, if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); PixelGetMagickColor(color,&pixel); - status=SetImageColor(wand->images,&pixel); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); - return(status); + return(SetImageColor(wand->images,&pixel,wand->exception)); } /* @@ -9570,7 +9549,7 @@ WandExport MagickBooleanType MagickSetImageMatte(MagickWand *wand, if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); if ((wand->images->matte == MagickFalse) && (matte != MagickFalse)) - (void) SetImageAlpha(wand->images,OpaqueAlpha); + (void) SetImageAlpha(wand->images,OpaqueAlpha,wand->exception); wand->images->matte=matte; return(MagickTrue); } @@ -9651,9 +9630,8 @@ WandExport MagickBooleanType MagickSetImageAlpha(MagickWand *wand, (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); - status=SetImageAlpha(wand->images,ClampToQuantum(QuantumRange*alpha)); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); + status=SetImageAlpha(wand->images,ClampToQuantum(QuantumRange*alpha), + wand->exception); return(status); } @@ -11036,19 +11014,13 @@ WandExport MagickWand *MagickStereoImage(MagickWand *wand, */ WandExport MagickBooleanType MagickStripImage(MagickWand *wand) { - MagickBooleanType - status; - assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); - status=StripImage(wand->images); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); - return(status); + return(StripImage(wand->images,wand->exception)); } /* @@ -11148,10 +11120,9 @@ WandExport MagickWand *MagickTextureImage(MagickWand *wand, texture_image=CloneImage(wand->images,0,0,MagickTrue,wand->exception); if (texture_image == (Image *) NULL) return((MagickWand *) NULL); - status=TextureImage(texture_image,texture_wand->images); + status=TextureImage(texture_image,texture_wand->images,wand->exception); if (status == MagickFalse) { - InheritException(wand->exception,&texture_image->exception); texture_image=DestroyImage(texture_image); return((MagickWand *) NULL); } @@ -11211,9 +11182,7 @@ WandExport MagickBooleanType MagickThresholdImageChannel(MagickWand *wand, (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); - status=BilevelImage(wand->images,threshold); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); + status=BilevelImage(wand->images,threshold,wand->exception); return(status); } @@ -11386,10 +11355,9 @@ WandExport MagickWand *MagickTransformImage(MagickWand *wand, transform_image=CloneImage(wand->images,0,0,MagickTrue,wand->exception); if (transform_image == (Image *) NULL) return((MagickWand *) NULL); - status=TransformImage(&transform_image,crop,geometry); + status=TransformImage(&transform_image,crop,geometry,wand->exception); if (status == MagickFalse) { - InheritException(wand->exception,&transform_image->exception); transform_image=DestroyImage(transform_image); return((MagickWand *) NULL); } @@ -11434,7 +11402,7 @@ WandExport MagickBooleanType MagickTransformImageColorspace(MagickWand *wand, (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name); if (wand->images == (Image *) NULL) ThrowWandException(WandError,"ContainsNoImages",wand->name); - return(TransformImageColorspace(wand->images,colorspace)); + return(TransformImageColorspace(wand->images,colorspace,wand->exception)); } /* @@ -11863,9 +11831,6 @@ WandExport MagickBooleanType MagickWhiteThresholdImage(MagickWand *wand, char thresholds[MaxTextExtent]; - MagickBooleanType - status; - assert(wand != (MagickWand *) NULL); assert(wand->signature == WandSignature); if (wand->debug != MagickFalse) @@ -11876,10 +11841,7 @@ WandExport MagickBooleanType MagickWhiteThresholdImage(MagickWand *wand, QuantumFormat "," QuantumFormat "," QuantumFormat "," QuantumFormat, PixelGetRedQuantum(threshold),PixelGetGreenQuantum(threshold), PixelGetBlueQuantum(threshold),PixelGetAlphaQuantum(threshold)); - status=WhiteThresholdImage(wand->images,thresholds,&wand->images->exception); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); - return(status); + return(WhiteThresholdImage(wand->images,thresholds,wand->exception)); } /* @@ -11935,7 +11897,7 @@ WandExport MagickBooleanType MagickWriteImage(MagickWand *wand, return(MagickFalse); write_info=CloneImageInfo(wand->image_info); write_info->adjoin=MagickTrue; - status=WriteImage(write_info,image,&image->exception); + status=WriteImage(write_info,image,wand->exception); image=DestroyImage(image); write_info=DestroyImageInfo(write_info); return(status); @@ -11989,7 +11951,7 @@ WandExport MagickBooleanType MagickWriteImageFile(MagickWand *wand,FILE *file) write_info=CloneImageInfo(wand->image_info); SetImageInfoFile(write_info,file); write_info->adjoin=MagickTrue; - status=WriteImage(write_info,image,&image->exception); + status=WriteImage(write_info,image,wand->exception); write_info=DestroyImageInfo(write_info); image=DestroyImage(image); return(status); @@ -12040,8 +12002,6 @@ WandExport MagickBooleanType MagickWriteImages(MagickWand *wand, write_info=CloneImageInfo(wand->image_info); write_info->adjoin=adjoin; status=WriteImages(write_info,wand->images,filename,wand->exception); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); write_info=DestroyImageInfo(write_info); return(status); } @@ -12090,7 +12050,5 @@ WandExport MagickBooleanType MagickWriteImagesFile(MagickWand *wand,FILE *file) status=WriteImages(write_info,wand->images,(const char *) NULL, wand->exception); write_info=DestroyImageInfo(write_info); - if (status == MagickFalse) - InheritException(wand->exception,&wand->images->exception); return(status); } diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c index 0ba24f562..ae2ddd701 100644 --- a/MagickWand/mogrify.c +++ b/MagickWand/mogrify.c @@ -1177,13 +1177,13 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, (void) SyncImageSettings(mogrify_info,*image); if (*option == '+') { - (void) TransformImageColorspace(*image,RGBColorspace); + (void) TransformImageColorspace(*image,RGBColorspace,exception); InheritException(exception,&(*image)->exception); break; } colorspace=(ColorspaceType) ParseCommandOption( MagickColorspaceOptions,MagickFalse,argv[i+1]); - (void) TransformImageColorspace(*image,colorspace); + (void) TransformImageColorspace(*image,colorspace,exception); InheritException(exception,&(*image)->exception); break; } @@ -2455,8 +2455,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, */ (void) CompositeImage(region_image,region_image->matte != MagickFalse ? CopyCompositeOp : OverCompositeOp,*image, - region_geometry.x,region_geometry.y); - InheritException(exception,®ion_image->exception); + region_geometry.x,region_geometry.y,exception); *image=DestroyImage(*image); *image=region_image; region_image = (Image *) NULL; @@ -2870,8 +2869,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, Strip image of profiles and comments. */ (void) SyncImageSettings(mogrify_info,*image); - (void) StripImage(*image); - InheritException(exception,&(*image)->exception); + (void) StripImage(*image,exception); break; } if (LocaleCompare("stroke",option+1) == 0) @@ -2942,7 +2940,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, threshold=(double) QuantumRange/2; else threshold=SiPrefixToDouble(argv[i+1],QuantumRange); - (void) BilevelImage(*image,threshold); + (void) BilevelImage(*image,threshold,exception); InheritException(exception,&(*image)->exception); break; } @@ -3200,8 +3198,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, (void) SyncImageSettings(mogrify_info,*image); (void) CompositeImage(region_image,region_image->matte != MagickFalse ? CopyCompositeOp : OverCompositeOp,*image, - region_geometry.x,region_geometry.y); - InheritException(exception,®ion_image->exception); + region_geometry.x,region_geometry.y,exception); *image=DestroyImage(*image); *image=region_image; region_image = (Image *) NULL; @@ -7444,7 +7441,7 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info, break; } (void) TransformImage(&composite_image,(char *) NULL, - composite_image->geometry); + composite_image->geometry,exception); SetGeometry(composite_image,&geometry); (void) ParseAbsoluteGeometry(composite_image->geometry,&geometry); GravityAdjustGeometry(image->columns,image->rows,image->gravity, @@ -7459,7 +7456,7 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info, Merge Y displacement into X displacement image. */ (void) CompositeImage(composite_image,CopyGreenCompositeOp, - mask_image,0,0); + mask_image,0,0,exception); mask_image=DestroyImage(mask_image); } else @@ -7473,7 +7470,7 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info, } } (void) CompositeImage(image,image->compose,composite_image, - geometry.x,geometry.y); + geometry.x,geometry.y,exception); if (mask_image != (Image *) NULL) mask_image=image->mask=DestroyImage(image->mask); composite_image=DestroyImage(composite_image); diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs index 76553d0e5..560886dbe 100644 --- a/PerlMagick/Magick.xs +++ b/PerlMagick/Magick.xs @@ -1279,7 +1279,8 @@ static void SetAttribute(pTHX_ struct PackageInfo *info,Image *image, break; } for ( ; image; image=image->next) - (void) TransformImageColorspace(image,(ColorspaceType) sp); + (void) TransformImageColorspace(image,(ColorspaceType) sp, + exception); break; } if (LocaleCompare(attribute,"comment") == 0) @@ -8269,7 +8270,7 @@ Mogrify(ref,...) if (compose != DissolveCompositeOp) (void) SetImageAlpha(composite_image,(Quantum) SiPrefixToDouble(argument_list[6].string_reference, - QuantumRange)); + QuantumRange),exception); else { CacheView @@ -8299,7 +8300,7 @@ Mogrify(ref,...) opacity=(Quantum) SiPrefixToDouble( argument_list[6].string_reference,QuantumRange); if (composite_image->matte != MagickTrue) - (void) SetImageAlpha(composite_image,OpaqueAlpha); + (void) SetImageAlpha(composite_image,OpaqueAlpha,exception); composite_view=AcquireCacheView(composite_image); for (y=0; y < (ssize_t) composite_image->rows ; y++) { @@ -8364,9 +8365,11 @@ Mogrify(ref,...) for (x=0; x < (ssize_t) image->columns; x+=(ssize_t) composite_image->columns) { if (attribute_flag[8] != 0) /* rotate */ - (void) CompositeImage(image,compose,rotate_image,x,y); + (void) CompositeImage(image,compose,rotate_image,x,y, + exception); else - (void) CompositeImage(image,compose,composite_image,x,y); + (void) CompositeImage(image,compose,composite_image,x,y, + exception); } if (attribute_flag[8] != 0) /* rotate */ rotate_image=DestroyImage(rotate_image); @@ -8400,7 +8403,7 @@ Mogrify(ref,...) composite_image=CloneImage(composite_image,0,0,MagickTrue, &image->exception); (void) CompositeImage(composite_image,CopyGreenCompositeOp, - argument_list[10].image_reference,0,0); + argument_list[10].image_reference,0,0,exception); } else { @@ -8425,7 +8428,8 @@ Mogrify(ref,...) exception); channel_mask=SetPixelChannelMask(image,channel); if (attribute_flag[8] == 0) /* no rotate */ - CompositeImage(image,compose,composite_image,geometry.x,geometry.y); + CompositeImage(image,compose,composite_image,geometry.x,geometry.y, + exception); else { /* @@ -8435,7 +8439,8 @@ Mogrify(ref,...) composite_image->columns)/2; geometry.y-=(ssize_t) (rotate_image->rows- composite_image->rows)/2; - CompositeImage(image,compose,rotate_image,geometry.x,geometry.y); + CompositeImage(image,compose,rotate_image,geometry.x,geometry.y, + exception); rotate_image=DestroyImage(rotate_image); } if (attribute_flag[10] != 0) /* mask */ @@ -8784,7 +8789,7 @@ Mogrify(ref,...) if (attribute_flag[2] != 0) geometry.y=argument_list[2].integer_reference; if (image->matte == MagickFalse) - (void) SetImageAlpha(image,OpaqueAlpha); + (void) SetImageAlpha(image,OpaqueAlpha,exception); (void) GetOneVirtualPixel(image,geometry.x,geometry.y,virtual_pixel, exception); target.red=virtual_pixel[RedPixelChannel]; @@ -9026,7 +9031,7 @@ Mogrify(ref,...) { if (attribute_flag[0] == 0) break; - TextureImage(image,argument_list[0].image_reference); + TextureImage(image,argument_list[0].image_reference,exception); break; } case 55: /* Evalute */ @@ -9091,7 +9096,7 @@ Mogrify(ref,...) threshold=SiPrefixToDouble(argument_list[0].string_reference, QuantumRange); channel_mask=SetPixelChannelMask(image,channel); - (void) BilevelImage(image,threshold); + (void) BilevelImage(image,threshold,exception); (void) SetPixelChannelMask(image,channel_mask); break; } @@ -9150,7 +9155,7 @@ Mogrify(ref,...) if (attribute_flag[0] != 0) channel=(ChannelType) argument_list[0].integer_reference; channel_mask=SetPixelChannelMask(image,channel); - (void) SeparateImage(image); + (void) SeparateImage(image,exception); (void) SetPixelChannelMask(image,channel_mask); break; } @@ -9738,7 +9743,7 @@ Mogrify(ref,...) } case 84: /* Strip */ { - (void) StripImage(image); + (void) StripImage(image,exception); break; } case 85: /* Tint */ @@ -9761,7 +9766,7 @@ Mogrify(ref,...) if (attribute_flag[0] != 0) channel=(ChannelType) argument_list[0].integer_reference; channel_mask=SetPixelChannelMask(image,channel); - (void) SeparateImage(image); + (void) SeparateImage(image,exception); (void) SetPixelChannelMask(image,channel_mask); break; } @@ -10762,7 +10767,7 @@ Mogrify(ref,...) if (attribute_flag[0] != 0) (void) QueryColorCompliance(argument_list[0].string_reference, AllCompliance,&color,exception); - (void) SetImageColor(image,&color); + (void) SetImageColor(image,&color,exception); break; } case 136: /* Mode */ @@ -10824,7 +10829,7 @@ Mogrify(ref,...) Composite region. */ status=CompositeImage(region_image,CopyCompositeOp,image, - region_info.x,region_info.y); + region_info.x,region_info.y,exception); (void) status; (void) CatchImageException(region_image); image=DestroyImage(image); @@ -14090,7 +14095,7 @@ Transform(ref,...) clone=CloneImage(image,0,0,MagickTrue,exception); if ((clone == (Image *) NULL) || (exception->severity >= ErrorException)) goto PerlException; - TransformImage(&clone,crop_geometry,geometry); + TransformImage(&clone,crop_geometry,geometry,exception); for ( ; clone; clone=clone->next) { AddImageToRegistry(sv,clone); diff --git a/coders/aai.c b/coders/aai.c index 490d812c3..bcde36cc4 100644 --- a/coders/aai.c +++ b/coders/aai.c @@ -365,7 +365,7 @@ static MagickBooleanType WriteAAIImage(const ImageInfo *image_info,Image *image, Write AAI header. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); (void) WriteBlobLSBLong(image,(unsigned int) image->columns); (void) WriteBlobLSBLong(image,(unsigned int) image->rows); /* diff --git a/coders/art.c b/coders/art.c index c102f0288..fbb85853e 100644 --- a/coders/art.c +++ b/coders/art.c @@ -323,7 +323,7 @@ static MagickBooleanType WriteARTImage(const ImageInfo *image_info,Image *image, (void) WriteBlobLSBShort(image,0); (void) WriteBlobLSBShort(image,(unsigned short) image->rows); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); length=(image->columns+7)/8; pixels=(unsigned char *) AcquireQuantumMemory(length,sizeof(*pixels)); if (pixels == (unsigned char *) NULL) diff --git a/coders/avs.c b/coders/avs.c index 2127d9057..dc9012a35 100644 --- a/coders/avs.c +++ b/coders/avs.c @@ -362,7 +362,7 @@ static MagickBooleanType WriteAVSImage(const ImageInfo *image_info,Image *image, Write AVS header. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); (void) WriteBlobMSBLong(image,(unsigned int) image->columns); (void) WriteBlobMSBLong(image,(unsigned int) image->rows); /* diff --git a/coders/bgr.c b/coders/bgr.c index d598b865b..24d3393a0 100644 --- a/coders/bgr.c +++ b/coders/bgr.c @@ -1108,7 +1108,7 @@ static MagickBooleanType WriteBGRImage(const ImageInfo *image_info,Image *image, Convert MIFF to BGR raster pixels. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); if ((LocaleCompare(image_info->magick,"BGRA") == 0) && (image->matte == MagickFalse)) (void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception); diff --git a/coders/bmp.c b/coders/bmp.c index 8c3b4a503..972cf1767 100644 --- a/coders/bmp.c +++ b/coders/bmp.c @@ -1515,7 +1515,7 @@ static MagickBooleanType WriteBMPImage(const ImageInfo *image_info,Image *image, Initialize BMP raster file header. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); (void) ResetMagickMemory(&bmp_info,0,sizeof(bmp_info)); bmp_info.file_size=14+12; if (type > 2) diff --git a/coders/cin.c b/coders/cin.c index 593b52711..f7363df21 100644 --- a/coders/cin.c +++ b/coders/cin.c @@ -912,7 +912,7 @@ static MagickBooleanType WriteCINImage(const ImageInfo *image_info,Image *image, if (status == MagickFalse) return(status); if (image->colorspace != LogColorspace) - (void) TransformImageColorspace(image,LogColorspace); + (void) TransformImageColorspace(image,LogColorspace,exception); /* Write image information. */ diff --git a/coders/cip.c b/coders/cip.c index 2b8ea20fc..b21b34216 100644 --- a/coders/cip.c +++ b/coders/cip.c @@ -236,7 +236,7 @@ static MagickBooleanType WriteCIPImage(const ImageInfo *image_info,Image *image, (void) WriteBlobString(image,buffer); (void) WriteBlobString(image,""); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); for (y=0; y < (ssize_t) image->rows; y++) { p=GetVirtualPixels(image,0,y,image->columns,1,exception); diff --git a/coders/cmyk.c b/coders/cmyk.c index 5a102c26b..7777333fb 100644 --- a/coders/cmyk.c +++ b/coders/cmyk.c @@ -1225,7 +1225,7 @@ static MagickBooleanType WriteCMYKImage(const ImageInfo *image_info, Convert MIFF to CMYK raster pixels. */ if (image->colorspace != CMYKColorspace) - (void) TransformImageColorspace(image,CMYKColorspace); + (void) TransformImageColorspace(image,CMYKColorspace,exception); if ((LocaleCompare(image_info->magick,"CMYKA") == 0) && (image->matte == MagickFalse)) (void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception); diff --git a/coders/dib.c b/coders/dib.c index 80019d2a6..8e7f19cfc 100644 --- a/coders/dib.c +++ b/coders/dib.c @@ -1011,7 +1011,7 @@ static MagickBooleanType WriteDIBImage(const ImageInfo *image_info,Image *image, Initialize DIB raster file header. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); if (image->storage_class == DirectClass) { /* diff --git a/coders/ept.c b/coders/ept.c index 2f378f83b..bc1c3bdfe 100644 --- a/coders/ept.c +++ b/coders/ept.c @@ -419,7 +419,7 @@ static MagickBooleanType WriteEPTImage(const ImageInfo *image_info,Image *image, (void) FormatLocaleString(filename,MaxTextExtent,"tiff:%s", write_info->filename); (void) CopyMagickString(write_info->filename,filename,MaxTextExtent); - (void) TransformImage(&write_image,(char *) NULL,"512x512>"); + (void) TransformImage(&write_image,(char *) NULL,"512x512>",exception); if ((write_image->storage_class == DirectClass) || (write_image->colors > 256)) { diff --git a/coders/fax.c b/coders/fax.c index f618c2027..34b7a4bd7 100644 --- a/coders/fax.c +++ b/coders/fax.c @@ -331,7 +331,7 @@ static MagickBooleanType WriteFAXImage(const ImageInfo *image_info,Image *image, Convert MIFF to monochrome. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); status=HuffmanEncodeImage(write_info,image,image,exception); if (GetNextImageInList(image) == (Image *) NULL) break; diff --git a/coders/fits.c b/coders/fits.c index b22c8a9fa..dcea2e380 100644 --- a/coders/fits.c +++ b/coders/fits.c @@ -638,7 +638,7 @@ static MagickBooleanType WriteFITSImage(const ImageInfo *image_info, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Allocate image memory. */ diff --git a/coders/fpx.c b/coders/fpx.c index dd829fb9e..f6907552f 100644 --- a/coders/fpx.c +++ b/coders/fpx.c @@ -859,7 +859,7 @@ static MagickBooleanType WriteFPXImage(const ImageInfo *image_info,Image *image, */ image->depth=8; if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); memory_limit=20000000; fpx_status=FPX_SetToolkitMemoryLimit(&memory_limit); if (fpx_status != FPX_OK) diff --git a/coders/gif.c b/coders/gif.c index b3c135b6d..35f74d895 100644 --- a/coders/gif.c +++ b/coders/gif.c @@ -1564,7 +1564,7 @@ static MagickBooleanType WriteGIFImage(const ImageInfo *image_info,Image *image, do { if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); opacity=(-1); if (IsImageOpaque(image,exception) != MagickFalse) { diff --git a/coders/gradient.c b/coders/gradient.c index b0d33368d..e0353afda 100644 --- a/coders/gradient.c +++ b/coders/gradient.c @@ -117,7 +117,7 @@ static Image *ReadGRADIENTImage(const ImageInfo *image_info, image=AcquireImage(image_info,exception); if ((image->columns == 0) || (image->rows == 0)) ThrowReaderException(OptionError,"MustSpecifyImageSize"); - (void) SetImageAlpha(image,(Quantum) TransparentAlpha); + (void) SetImageAlpha(image,(Quantum) TransparentAlpha,exception); (void) CopyMagickString(image->filename,image_info->filename,MaxTextExtent); (void) CopyMagickString(colorname,image_info->filename,MaxTextExtent); (void) sscanf(image_info->filename,"%[^-]",colorname); diff --git a/coders/gray.c b/coders/gray.c index 8b2c3106e..7655df7a2 100644 --- a/coders/gray.c +++ b/coders/gray.c @@ -413,7 +413,7 @@ static MagickBooleanType WriteGRAYImage(const ImageInfo *image_info, Write grayscale pixels. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); quantum_type=GrayQuantum; quantum_info=AcquireQuantumInfo(image_info,image); if (quantum_info == (QuantumInfo *) NULL) diff --git a/coders/hdr.c b/coders/hdr.c index f4f0da07c..3bed84af4 100644 --- a/coders/hdr.c +++ b/coders/hdr.c @@ -687,7 +687,7 @@ static MagickBooleanType WriteHDRImage(const ImageInfo *image_info,Image *image, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Write header. */ diff --git a/coders/hrz.c b/coders/hrz.c index 32c5b2b8d..9fe9ef324 100644 --- a/coders/hrz.c +++ b/coders/hrz.c @@ -308,7 +308,7 @@ static MagickBooleanType WriteHRZImage(const ImageInfo *image_info,Image *image, if (hrz_image == (Image *) NULL) return(MagickFalse); if (IsRGBColorspace(hrz_image->colorspace) == MagickFalse) - (void) TransformImageColorspace(hrz_image,RGBColorspace); + (void) TransformImageColorspace(hrz_image,RGBColorspace,exception); /* Allocate memory for pixels. */ diff --git a/coders/html.c b/coders/html.c index da660ae88..52186398a 100644 --- a/coders/html.c +++ b/coders/html.c @@ -251,7 +251,7 @@ static MagickBooleanType WriteHTMLImage(const ImageInfo *image_info, return(status); (void) CloseBlob(image); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); *url='\0'; if ((LocaleCompare(image_info->magick,"FTP") == 0) || (LocaleCompare(image_info->magick,"HTTP") == 0)) diff --git a/coders/icon.c b/coders/icon.c index 25a082d24..29226c79a 100644 --- a/coders/icon.c +++ b/coders/icon.c @@ -906,7 +906,7 @@ static MagickBooleanType WriteICONImage(const ImageInfo *image_info, Initialize ICON raster file header. */ if (next->colorspace != RGBColorspace) - (void) TransformImageColorspace(next,RGBColorspace); + (void) TransformImageColorspace(next,RGBColorspace,exception); icon_info.file_size=14+12+28; icon_info.offset_bits=icon_info.file_size; icon_info.compression=BI_RGB; diff --git a/coders/ipl.c b/coders/ipl.c index dcaa9a648..5a78283b1 100644 --- a/coders/ipl.c +++ b/coders/ipl.c @@ -577,7 +577,7 @@ static MagickBooleanType WriteIPLImage(const ImageInfo *image_info,Image *image, ipl_info.height = (unsigned int) image->rows; if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); if(IsRGBColorspace(image->colorspace) == MagickTrue) { ipl_info.colors = 3; } else{ ipl_info.colors = 1; } diff --git a/coders/jbig.c b/coders/jbig.c index 0048cf84c..4faf712fb 100644 --- a/coders/jbig.c +++ b/coders/jbig.c @@ -446,7 +446,7 @@ static MagickBooleanType WriteJBIGImage(const ImageInfo *image_info, Allocate pixel data. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); number_packets=(image->columns+7)/8; pixels=(unsigned char *) AcquireQuantumMemory(number_packets, image->rows*sizeof(*pixels)); diff --git a/coders/jp2.c b/coders/jp2.c index d966bb3dc..8831ae1db 100644 --- a/coders/jp2.c +++ b/coders/jp2.c @@ -858,7 +858,7 @@ static MagickBooleanType WriteJP2Image(const ImageInfo *image_info,Image *image, Initialize JPEG 2000 API. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); jp2_stream=JP2StreamManager(image); if (jp2_stream == (jas_stream_t *) NULL) ThrowWriterException(DelegateError,"UnableToManageJP2Stream"); diff --git a/coders/jpeg.c b/coders/jpeg.c index af8c77c26..7a853d186 100644 --- a/coders/jpeg.c +++ b/coders/jpeg.c @@ -1857,7 +1857,7 @@ static MagickBooleanType WriteJPEGImage(const ImageInfo *image_info, default: { if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); break; } } diff --git a/coders/map.c b/coders/map.c index 8e3c009dd..49de68120 100644 --- a/coders/map.c +++ b/coders/map.c @@ -375,7 +375,7 @@ static MagickBooleanType WriteMAPImage(const ImageInfo *image_info,Image *image, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Allocate colormap. */ diff --git a/coders/mat.c b/coders/mat.c index f5a852b0a..690f732b9 100644 --- a/coders/mat.c +++ b/coders/mat.c @@ -1215,7 +1215,7 @@ static MagickBooleanType WriteMATImage(const ImageInfo *image_info,Image *image, do { if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); is_gray = IsImageGray(image,exception); z = is_gray ? 0 : 3; diff --git a/coders/mono.c b/coders/mono.c index aa0b0a6f6..bcb041012 100644 --- a/coders/mono.c +++ b/coders/mono.c @@ -314,7 +314,7 @@ static MagickBooleanType WriteMONOImage(const ImageInfo *image_info, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Convert image to a bi-level image. */ diff --git a/coders/msl.c b/coders/msl.c index d74616a66..6b5513179 100644 --- a/coders/msl.c +++ b/coders/msl.c @@ -1923,7 +1923,8 @@ static void MSLStartElement(void *context,const xmlChar *tag, SetImageType(composite_image,TrueColorMatteType, &exception); (void) CompositeImage(composite_image, - CopyOpacityCompositeOp,msl_info->image[j],0,0); + CopyOpacityCompositeOp,msl_info->image[j],0,0, + &exception); break; } } @@ -1953,13 +1954,14 @@ static void MSLStartElement(void *context,const xmlChar *tag, if (compose != DissolveCompositeOp) { (void) SetImageAlpha(composite_image,(Quantum) - opacity); + opacity,&exception); break; } (void) SetImageArtifact(msl_info->image[n], "compose:args",value); if (composite_image->matte != MagickTrue) - (void) SetImageAlpha(composite_image,OpaqueAlpha); + (void) SetImageAlpha(composite_image,OpaqueAlpha, + &exception); composite_view=AcquireCacheView(composite_image); for (y=0; y < (ssize_t) composite_image->rows ; y++) { @@ -2024,10 +2026,10 @@ static void MSLStartElement(void *context,const xmlChar *tag, { if (rotate_image != (Image *) NULL) (void) CompositeImage(image,compose,rotate_image, - x,y); + x,y,&exception); else (void) CompositeImage(image,compose, - composite_image,x,y); + composite_image,x,y,&exception); } if (rotate_image != (Image *) NULL) rotate_image=DestroyImage(rotate_image); @@ -2078,7 +2080,8 @@ static void MSLStartElement(void *context,const xmlChar *tag, &exception); channel_mask=SetPixelChannelMask(image,channel); if (rotate_image == (Image *) NULL) - CompositeImage(image,compose,composite_image,geometry.x,geometry.y); + CompositeImage(image,compose,composite_image,geometry.x,geometry.y, + &exception); else { /* @@ -2088,7 +2091,8 @@ static void MSLStartElement(void *context,const xmlChar *tag, composite_image->columns)/2; geometry.y-=(ssize_t) (rotate_image->rows- composite_image->rows)/2; - CompositeImage(image,compose,rotate_image,geometry.x,geometry.y); + CompositeImage(image,compose,rotate_image,geometry.x,geometry.y, + &exception); rotate_image=DestroyImage(rotate_image); } (void) SetPixelChannelMask(image,channel_mask); @@ -6069,7 +6073,7 @@ static void MSLStartElement(void *context,const xmlChar *tag, ThrowMSLException(OptionError,"UnrecognizedColorspace", value); (void) TransformImageColorspace(msl_info->image[n], - (ColorspaceType) colorspace); + (ColorspaceType) colorspace,&exception); break; } (void) SetMSLAttributes(msl_info,keyword,value); @@ -6110,7 +6114,8 @@ static void MSLStartElement(void *context,const xmlChar *tag, opac = (int)(QuantumRange * ((float)opac/100)); } else opac = StringToLong( value ); - (void) SetImageAlpha( msl_info->image[n], (Quantum) opac ); + (void) SetImageAlpha( msl_info->image[n], (Quantum) opac, + &exception); break; } (void) SetMSLAttributes(msl_info,keyword,value); @@ -7139,7 +7144,7 @@ static void MSLStartElement(void *context,const xmlChar *tag, } } } - (void) TextureImage(msl_info->image[n],texture_image); + (void) TextureImage(msl_info->image[n],texture_image,&exception); texture_image=DestroyImage(texture_image); break; } @@ -7185,8 +7190,8 @@ static void MSLStartElement(void *context,const xmlChar *tag, process image. */ { - BilevelImage(msl_info->image[n],threshold); - break; + BilevelImage(msl_info->image[n],threshold,&exception); + break; } } else if (LocaleCompare((const char *) tag, "transparent") == 0) diff --git a/coders/mtv.c b/coders/mtv.c index 6a0ebe1af..a60e1023f 100644 --- a/coders/mtv.c +++ b/coders/mtv.c @@ -367,7 +367,7 @@ static MagickBooleanType WriteMTVImage(const ImageInfo *image_info,Image *image, Allocate memory for pixels. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); pixels=(unsigned char *) AcquireQuantumMemory((size_t) image->columns, 3UL*sizeof(*pixels)); if (pixels == (unsigned char *) NULL) diff --git a/coders/otb.c b/coders/otb.c index 6985426f2..9c7ef2d89 100644 --- a/coders/otb.c +++ b/coders/otb.c @@ -334,7 +334,7 @@ static MagickBooleanType WriteOTBImage(const ImageInfo *image_info,Image *image, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Convert image to a bi-level image. */ diff --git a/coders/palm.c b/coders/palm.c index 28082bcc3..9735b583e 100644 --- a/coders/palm.c +++ b/coders/palm.c @@ -734,16 +734,16 @@ static MagickBooleanType WritePALMImage(const ImageInfo *image_info, do { if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); count=GetNumberColors(image,NULL,exception); for (bits_per_pixel=1; (one << bits_per_pixel) < count; bits_per_pixel*=2) ; if (image_info->depth > 100) bits_per_pixel=image_info->depth-100; if (bits_per_pixel < 16) - (void) TransformImageColorspace(image,image->colorspace); + (void) TransformImageColorspace(image,image->colorspace,exception); if (bits_per_pixel < 8) { - (void) TransformImageColorspace(image,GRAYColorspace); + (void) TransformImageColorspace(image,GRAYColorspace,exception); (void) SetImageType(image,PaletteType,exception); (void) SortColormapByIntensity(image,exception); } @@ -817,7 +817,7 @@ static MagickBooleanType WritePALMImage(const ImageInfo *image_info, affinity_image=ConstituteImage(256,1,"RGB",CharPixel,&PalmPalette, exception); (void) TransformImageColorspace(affinity_image, - affinity_image->colorspace); + affinity_image->colorspace,exception); (void) RemapImage(quantize_info,image,affinity_image,exception); for (y=0; y < (ssize_t) image->rows; y++) { diff --git a/coders/pattern.c b/coders/pattern.c index 510140452..f9dd5367c 100644 --- a/coders/pattern.c +++ b/coders/pattern.c @@ -991,7 +991,7 @@ static Image *ReadPATTERNImage(const ImageInfo *image_info, image=AcquireImage(blob_info,exception); image->background_color=pattern_image->background_color; (void) SetImageBackgroundColor(image); - (void) TextureImage(image,pattern_image); + (void) TextureImage(image,pattern_image,exception); pattern_image=DestroyImage(pattern_image); } blob_info=DestroyImageInfo(blob_info); diff --git a/coders/pcd.c b/coders/pcd.c index af0df4ff2..bcf71267c 100644 --- a/coders/pcd.c +++ b/coders/pcd.c @@ -943,7 +943,7 @@ ModuleExport void UnregisterPCDImage(void) */ static MagickBooleanType WritePCDTile(Image *image,const char *page_geometry, - const char *tile_geometry) + const char *tile_geometry,ExceptionInfo *exception) { GeometryInfo geometry_info; @@ -1012,9 +1012,9 @@ static MagickBooleanType WritePCDTile(Image *image,const char *page_geometry, tile_image=DestroyImage(tile_image); tile_image=bordered_image; } - (void) TransformImage(&tile_image,(char *) NULL,tile_geometry); + (void) TransformImage(&tile_image,(char *) NULL,tile_geometry,exception); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(tile_image,YCCColorspace); + (void) TransformImageColorspace(tile_image,YCCColorspace,exception); downsample_image=ResizeImage(tile_image,tile_image->columns/2, tile_image->rows/2,TriangleFilter,1.0,&image->exception); if (downsample_image == (Image *) NULL) @@ -1103,7 +1103,7 @@ static MagickBooleanType WritePCDImage(const ImageInfo *image_info,Image *image, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(pcd_image,RGBColorspace); + (void) TransformImageColorspace(pcd_image,RGBColorspace,exception); /* Write PCD image header. */ @@ -1140,9 +1140,9 @@ static MagickBooleanType WritePCDImage(const ImageInfo *image_info,Image *image, /* Write PCD tiles. */ - status=WritePCDTile(pcd_image,"768x512>","192x128"); - status=WritePCDTile(pcd_image,"768x512>","384x256"); - status=WritePCDTile(pcd_image,"768x512>","768x512"); + status=WritePCDTile(pcd_image,"768x512>","192x128",exception); + status=WritePCDTile(pcd_image,"768x512>","384x256",exception); + status=WritePCDTile(pcd_image,"768x512>","768x512",exception); (void) CloseBlob(pcd_image); if (pcd_image != image) pcd_image=DestroyImage(pcd_image); diff --git a/coders/pcl.c b/coders/pcl.c index 7f9c60711..4386e299d 100644 --- a/coders/pcl.c +++ b/coders/pcl.c @@ -722,7 +722,7 @@ static MagickBooleanType WritePCLImage(const ImageInfo *image_info,Image *image, do { if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Initialize the printer. */ diff --git a/coders/pcx.c b/coders/pcx.c index 11e7d3493..14b4fb890 100644 --- a/coders/pcx.c +++ b/coders/pcx.c @@ -880,7 +880,7 @@ static MagickBooleanType WritePCXImage(const ImageInfo *image_info,Image *image, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); page_table=(MagickOffsetType *) NULL; if ((LocaleCompare(image_info->magick,"DCX") == 0) || ((GetNextImageInList(image) != (Image *) NULL) && diff --git a/coders/pdb.c b/coders/pdb.c index 6202bc19a..a014d1c39 100644 --- a/coders/pdb.c +++ b/coders/pdb.c @@ -744,7 +744,7 @@ static MagickBooleanType WritePDBImage(const ImageInfo *image_info,Image *image, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); if (image -> colors <= 2 || GetImageType( image, exception ) == BilevelType) { /* TS */ bits_per_pixel = 1; @@ -819,7 +819,7 @@ static MagickBooleanType WritePDBImage(const ImageInfo *image_info,Image *image, if (scanline == (unsigned char *) NULL) ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed"); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Convert to GRAY raster scanline. */ diff --git a/coders/pdf.c b/coders/pdf.c index 0a86318d2..db9499b3a 100644 --- a/coders/pdf.c +++ b/coders/pdf.c @@ -1256,7 +1256,7 @@ static MagickBooleanType WritePDFImage(const ImageInfo *image_info,Image *image, if (compression == JPEG2000Compression) { if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); } /* Scale relative to dots-per-inch. diff --git a/coders/pict.c b/coders/pict.c index 1b0973728..eb3721ef6 100644 --- a/coders/pict.c +++ b/coders/pict.c @@ -1240,7 +1240,7 @@ static Image *ReadPICTImage(const ImageInfo *image_info, if ((code == 0x9a) || (code == 0x9b) || ((bytes_per_line & 0x8000) != 0)) (void) CompositeImage(image,CopyCompositeOp,tile_image, - destination.left,destination.top); + destination.left,destination.top,exception); tile_image=DestroyImage(tile_image); break; } @@ -1384,9 +1384,10 @@ static Image *ReadPICTImage(const ImageInfo *image_info, MagickMax(image->columns,tile_image->columns), MagickMax(image->rows,tile_image->rows),exception); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,tile_image->colorspace); + (void) TransformImageColorspace(image,tile_image->colorspace, + exception); (void) CompositeImage(image,CopyCompositeOp,tile_image,frame.left, - frame.right); + frame.right,exception); image->compression=tile_image->compression; tile_image=DestroyImage(tile_image); continue; @@ -1601,7 +1602,7 @@ static MagickBooleanType WritePICTImage(const ImageInfo *image_info, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Initialize image info. */ diff --git a/coders/png.c b/coders/png.c index b863d5410..289d60aa9 100644 --- a/coders/png.c +++ b/coders/png.c @@ -7724,7 +7724,7 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info, } if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Sometimes we get PseudoClass images whose RGB values don't match @@ -10057,7 +10057,7 @@ static MagickBooleanType WriteOnePNGImage(MngInfo *mng_info, { /* Add an opaque matte channel */ image->matte = MagickTrue; - (void) SetImageAlpha(image,OpaqueAlpha); + (void) SetImageAlpha(image,OpaqueAlpha,exception); if (logging != MagickFalse) (void) LogMagickEvent(CoderEvent,GetMagickModule(), @@ -11665,7 +11665,7 @@ static MagickBooleanType WriteOneJNGImage(MngInfo *mng_info, (void) CopyMagickString(jpeg_image->magick,"JPEG",MaxTextExtent); channel_mask=SetPixelChannelMask(jpeg_image,AlphaChannel); - status=SeparateImage(jpeg_image); + status=SeparateImage(jpeg_image,exception); (void) SetPixelChannelMap(jpeg_image,channel_mask); jpeg_image->matte=MagickFalse; diff --git a/coders/pnm.c b/coders/pnm.c index 483bb9b17..ba155cc46 100644 --- a/coders/pnm.c +++ b/coders/pnm.c @@ -1565,7 +1565,7 @@ static MagickBooleanType WritePNMImage(const ImageInfo *image_info,Image *image, if (format != '7') { if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); (void) FormatLocaleString(buffer,MaxTextExtent,"%.20g %.20g\n", (double) image->columns,(double) image->rows); (void) WriteBlobString(image,buffer); diff --git a/coders/ps.c b/coders/ps.c index 3ba4b3830..4ec4d239e 100644 --- a/coders/ps.c +++ b/coders/ps.c @@ -1427,7 +1427,7 @@ static MagickBooleanType WritePSImage(const ImageInfo *image_info,Image *image, */ if ((IsRGBColorspace(image->colorspace) == MagickFalse) && (image->colorspace != CMYKColorspace)) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); delta.x=DefaultResolution; delta.y=DefaultResolution; resolution.x=image->x_resolution; diff --git a/coders/ps3.c b/coders/ps3.c index 659f8e078..151468215 100644 --- a/coders/ps3.c +++ b/coders/ps3.c @@ -522,7 +522,7 @@ static MagickBooleanType WritePS3MaskImage(const ImageInfo *image_info, if (mask_image == (Image *) NULL) ThrowWriterException(CoderError,image->exception.reason); channel_mask=SetPixelChannelMask(mask_image,AlphaChannel); - status=SeparateImage(mask_image); + status=SeparateImage(mask_image,exception); (void) SetPixelChannelMap(mask_image,channel_mask); if (status == MagickFalse) { diff --git a/coders/psd.c b/coders/psd.c index 5742e9eb9..120666029 100644 --- a/coders/psd.c +++ b/coders/psd.c @@ -2149,14 +2149,14 @@ static MagickBooleanType WritePSDImage(const ImageInfo *image_info,Image *image, (image_info->colorspace != CMYKColorspace)) { if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); (void) WriteBlobMSBShort(image,(unsigned short) (image->storage_class == PseudoClass ? IndexedMode : RGBMode)); } else { if (image->colorspace != CMYKColorspace) - (void) TransformImageColorspace(image,CMYKColorspace); + (void) TransformImageColorspace(image,CMYKColorspace,exception); (void) WriteBlobMSBShort(image,CMYKMode); } } diff --git a/coders/rgb.c b/coders/rgb.c index ff1c65f4d..e97a7473d 100644 --- a/coders/rgb.c +++ b/coders/rgb.c @@ -1127,7 +1127,7 @@ static MagickBooleanType WriteRGBImage(const ImageInfo *image_info, Convert MIFF to RGB raster pixels. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); if ((LocaleCompare(image_info->magick,"RGBA") == 0) && (image->matte == MagickFalse)) (void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception); diff --git a/coders/sgi.c b/coders/sgi.c index ed4bc2644..90ba84830 100644 --- a/coders/sgi.c +++ b/coders/sgi.c @@ -908,7 +908,7 @@ static MagickBooleanType WriteSGIImage(const ImageInfo *image_info,Image *image, Initialize SGI raster file header. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); (void) ResetMagickMemory(&iris_info,0,sizeof(iris_info)); iris_info.magic=0x01DA; compression=image->compression; diff --git a/coders/sun.c b/coders/sun.c index b5cb53946..673b5ad25 100644 --- a/coders/sun.c +++ b/coders/sun.c @@ -762,7 +762,7 @@ static MagickBooleanType WriteSUNImage(const ImageInfo *image_info,Image *image, Initialize SUN raster file header. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); sun_info.magic=0x59a66a95; if ((image->columns != (unsigned int) image->columns) || (image->rows != (unsigned int) image->rows)) diff --git a/coders/tga.c b/coders/tga.c index 8187ec8e1..850b75ea6 100644 --- a/coders/tga.c +++ b/coders/tga.c @@ -680,7 +680,7 @@ static MagickBooleanType WriteTGAImage(const ImageInfo *image_info,Image *image, if ((image->columns > 65535L) || (image->rows > 65535L)) ThrowWriterException(ImageError,"WidthOrHeightExceedsLimit"); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); targa_info.id_length=0; value=GetImageProperty(image,"comment",exception); if (value != (const char *) NULL) diff --git a/coders/tiff.c b/coders/tiff.c index 27a0eaf2a..2a8e17b98 100644 --- a/coders/tiff.c +++ b/coders/tiff.c @@ -2745,7 +2745,7 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info, else { if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); photometric=PHOTOMETRIC_RGB; } (void) TIFFSetField(tiff,TIFFTAG_SAMPLESPERPIXEL,3); @@ -3219,7 +3219,7 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info, if (image->matte != MagickFalse) quantum_type=CMYKAQuantum; if (image->colorspace != CMYKColorspace) - (void) TransformImageColorspace(image,CMYKColorspace); + (void) TransformImageColorspace(image,CMYKColorspace,exception); for (y=0; y < (ssize_t) image->rows; y++) { register const Quantum diff --git a/coders/tile.c b/coders/tile.c index cd0e42b16..fc7a1c737 100644 --- a/coders/tile.c +++ b/coders/tile.c @@ -125,7 +125,7 @@ static Image *ReadTILEImage(const ImageInfo *image_info, tile_image->tile_offset.x=0; tile_image->tile_offset.y=0; } - (void) TextureImage(image,tile_image); + (void) TextureImage(image,tile_image,exception); tile_image=DestroyImage(tile_image); return(GetFirstImageInList(image)); } diff --git a/coders/txt.c b/coders/txt.c index 3f6cbdda9..d86cadf43 100644 --- a/coders/txt.c +++ b/coders/txt.c @@ -286,7 +286,7 @@ static Image *ReadTEXTImage(const ImageInfo *image_info,Image *image, progress_monitor=SetImageProgressMonitor(image, (MagickProgressMonitor) NULL,image->client_data); - (void) TextureImage(image,texture); + (void) TextureImage(image,texture,exception); (void) SetImageProgressMonitor(image,progress_monitor, image->client_data); } @@ -321,7 +321,7 @@ static Image *ReadTEXTImage(const ImageInfo *image_info,Image *image, progress_monitor=SetImageProgressMonitor(image, (MagickProgressMonitor) NULL,image->client_data); - (void) TextureImage(image,texture); + (void) TextureImage(image,texture,exception); (void) SetImageProgressMonitor(image,progress_monitor,image->client_data); } (void) AnnotateImage(image,draw_info,exception); diff --git a/coders/uil.c b/coders/uil.c index 28003f387..3dc11fcb3 100644 --- a/coders/uil.c +++ b/coders/uil.c @@ -214,7 +214,7 @@ static MagickBooleanType WriteUILImage(const ImageInfo *image_info,Image *image, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); transparent=MagickFalse; i=0; p=(const Quantum *) NULL; diff --git a/coders/uyvy.c b/coders/uyvy.c index f09d9342c..071657955 100644 --- a/coders/uyvy.c +++ b/coders/uyvy.c @@ -330,7 +330,7 @@ static MagickBooleanType WriteUYVYImage(const ImageInfo *image_info, uyvy_image=CloneImage(image,0,0,MagickTrue,exception); if (uyvy_image == (Image *) NULL) return(MagickFalse); - (void) TransformImageColorspace(uyvy_image,YCbCrColorspace); + (void) TransformImageColorspace(uyvy_image,YCbCrColorspace,exception); full=MagickFalse; (void) ResetMagickMemory(&pixel,0,sizeof(PixelInfo)); for (y=0; y < (ssize_t) image->rows; y++) diff --git a/coders/vicar.c b/coders/vicar.c index 2e7bb7434..b37213fcc 100644 --- a/coders/vicar.c +++ b/coders/vicar.c @@ -458,7 +458,7 @@ static MagickBooleanType WriteVICARImage(const ImageInfo *image_info, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Write header. */ diff --git a/coders/viff.c b/coders/viff.c index aaba9f61c..0241ad0cd 100644 --- a/coders/viff.c +++ b/coders/viff.c @@ -975,7 +975,7 @@ static MagickBooleanType WriteVIFFImage(const ImageInfo *image_info, Initialize VIFF image structure. */ if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); if (IsImageGray(image,exception) != MagickFalse) (void) SetImageStorageClass(image,DirectClass,exception); viff_info.identifier=(char) 0xab; diff --git a/coders/wbmp.c b/coders/wbmp.c index 2f77d2f8e..89f4370ef 100644 --- a/coders/wbmp.c +++ b/coders/wbmp.c @@ -378,7 +378,7 @@ static MagickBooleanType WriteWBMPImage(const ImageInfo *image_info, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Convert image to a bi-level image. */ diff --git a/coders/xbm.c b/coders/xbm.c index eed9831de..c5ccffc54 100644 --- a/coders/xbm.c +++ b/coders/xbm.c @@ -511,7 +511,7 @@ static MagickBooleanType WriteXBMImage(const ImageInfo *image_info,Image *image, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Write X bitmap header. */ diff --git a/coders/xcf.c b/coders/xcf.c index e6caf5574..6c5b89053 100644 --- a/coders/xcf.c +++ b/coders/xcf.c @@ -683,7 +683,7 @@ static MagickBooleanType load_level(Image *image,XCFDocInfo *inDocInfo, /* composite the tile onto the layer's image, and then destroy it */ (void) CompositeImage(inLayerInfo->image,CopyCompositeOp,tile_image, - destLeft * TILE_WIDTH,destTop*TILE_HEIGHT); + destLeft * TILE_WIDTH,destTop*TILE_HEIGHT,exception); tile_image=DestroyImage(tile_image); /* adjust tile position */ @@ -1311,7 +1311,7 @@ static Image *ReadXCFImage(const ImageInfo *image_info,ExceptionInfo *exception) Composite the layer data onto the main image, dispose the layer. */ (void) CompositeImage(image,OverCompositeOp,layer_info[0].image, - layer_info[0].offset_x,layer_info[0].offset_y); + layer_info[0].offset_x,layer_info[0].offset_y,exception); layer_info[0].image =DestroyImage( layer_info[0].image); } else @@ -1347,7 +1347,7 @@ static Image *ReadXCFImage(const ImageInfo *image_info,ExceptionInfo *exception) (void) CompositeImage(image,CopyCompositeOp, layer_info[number_layers-1].image, layer_info[number_layers-1].offset_x, - layer_info[number_layers-1].offset_y); + layer_info[number_layers-1].offset_y,exception); layer_info[number_layers-1].image=DestroyImage( layer_info[number_layers-1].image); diff --git a/coders/xpm.c b/coders/xpm.c index f07adc34d..4ac87217c 100644 --- a/coders/xpm.c +++ b/coders/xpm.c @@ -632,7 +632,7 @@ static MagickBooleanType WritePICONImage(const ImageInfo *image_info, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); SetGeometry(image,&geometry); (void) ParseMetaGeometry(PiconGeometry,&geometry.x,&geometry.y, &geometry.width,&geometry.height); @@ -879,7 +879,7 @@ static MagickBooleanType WriteXPMImage(const ImageInfo *image_info,Image *image, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); opacity=(-1); if (image->matte == MagickFalse) { diff --git a/coders/xwd.c b/coders/xwd.c index 38b21fb9e..b1be9aab6 100644 --- a/coders/xwd.c +++ b/coders/xwd.c @@ -650,7 +650,7 @@ static MagickBooleanType WriteXWDImage(const ImageInfo *image_info,Image *image, if (status == MagickFalse) return(status); if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,RGBColorspace,exception); /* Initialize XWD file header. */ diff --git a/coders/ycbcr.c b/coders/ycbcr.c index 9ff4db351..342f30730 100644 --- a/coders/ycbcr.c +++ b/coders/ycbcr.c @@ -1015,7 +1015,7 @@ static MagickBooleanType WriteYCBCRImage(const ImageInfo *image_info, Convert MIFF to YCbCr raster pixels. */ if (image->colorspace != YCbCrColorspace) - (void) TransformImageColorspace(image,YCbCrColorspace); + (void) TransformImageColorspace(image,YCbCrColorspace,exception); if ((LocaleCompare(image_info->magick,"YCbCrA") == 0) && (image->matte == MagickFalse)) (void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception); diff --git a/coders/yuv.c b/coders/yuv.c index 331c028e7..ab67250d5 100644 --- a/coders/yuv.c +++ b/coders/yuv.c @@ -647,7 +647,7 @@ static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image, (void) CloseBlob(image); return(MagickFalse); } - (void) TransformImageColorspace(yuv_image,YCbCrColorspace); + (void) TransformImageColorspace(yuv_image,YCbCrColorspace,exception); /* Downsample image. */ @@ -658,7 +658,7 @@ static MagickBooleanType WriteYUVImage(const ImageInfo *image_info,Image *image, (void) CloseBlob(image); return(MagickFalse); } - (void) TransformImageColorspace(chroma_image,YCbCrColorspace); + (void) TransformImageColorspace(chroma_image,YCbCrColorspace,exception); if (interlace == NoInterlace) { /* -- 2.40.0