]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sat, 15 Oct 2011 01:52:48 +0000 (01:52 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sat, 15 Oct 2011 01:52:48 +0000 (01:52 +0000)
93 files changed:
Magick++/lib/Image.cpp
MagickCore/animate.c
MagickCore/annotate.c
MagickCore/colorspace.c
MagickCore/colorspace.h
MagickCore/compare.c
MagickCore/composite.c
MagickCore/composite.h
MagickCore/decorate.c
MagickCore/display.c
MagickCore/distort.c
MagickCore/draw.c
MagickCore/effect.c
MagickCore/fx.c
MagickCore/image.c
MagickCore/image.h
MagickCore/layer.c
MagickCore/montage.c
MagickCore/morphology.c
MagickCore/nt-base.c
MagickCore/quantize.c
MagickCore/segment.c
MagickCore/threshold.c
MagickCore/threshold.h
MagickCore/transform.c
MagickCore/transform.h
MagickCore/xwindow.c
MagickWand/compare.c
MagickWand/composite.c
MagickWand/magick-image.c
MagickWand/mogrify.c
PerlMagick/Magick.xs
coders/aai.c
coders/art.c
coders/avs.c
coders/bgr.c
coders/bmp.c
coders/cin.c
coders/cip.c
coders/cmyk.c
coders/dib.c
coders/ept.c
coders/fax.c
coders/fits.c
coders/fpx.c
coders/gif.c
coders/gradient.c
coders/gray.c
coders/hdr.c
coders/hrz.c
coders/html.c
coders/icon.c
coders/ipl.c
coders/jbig.c
coders/jp2.c
coders/jpeg.c
coders/map.c
coders/mat.c
coders/mono.c
coders/msl.c
coders/mtv.c
coders/otb.c
coders/palm.c
coders/pattern.c
coders/pcd.c
coders/pcl.c
coders/pcx.c
coders/pdb.c
coders/pdf.c
coders/pict.c
coders/png.c
coders/pnm.c
coders/ps.c
coders/ps3.c
coders/psd.c
coders/rgb.c
coders/sgi.c
coders/sun.c
coders/tga.c
coders/tiff.c
coders/tile.c
coders/txt.c
coders/uil.c
coders/uyvy.c
coders/vicar.c
coders/viff.c
coders/wbmp.c
coders/xbm.c
coders/xcf.c
coders/xpm.c
coders/xwd.c
coders/ycbcr.c
coders/yuv.c

index a05df942d80aa4f6a13bcbcf954fe8c1f969098d..203ec963b6c1fb3392b19189d596340038691999 100644 (file)
@@ -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;
index 8d0e59ac92d28772864bc62c054f375cedeafdef..d5c2a97d975583217389b989a750c9e638507f33 100644 (file)
@@ -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) ||
index 2cc29687fbc303e85aaf597d4834d756c99e64ad..ebc69f3de75f211f421f43d2f69d0e2e09d33e7a 100644 (file)
@@ -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);
index 9b477f61f7a6cb71a0a0465aa9677890eb68ff37..ee31e69960aacec9337b16f9e4bc146f4f524ceb 100644 (file)
@@ -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))
index 22cf4a04f8328f353d8ec8d4de613bfb8e748dd1..fdc998103f1b5b57e65b987a60f3244de6cde81b 100644 (file)
@@ -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)
index dc9f62307037bf2e423c9ee7a6eec4eae3698d4a..cea2647729140a4bfc5613da2f342357c91a5ef2 100644 (file)
@@ -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);
index b893c5128c19ad06de57eaed1b052ed0ca4f8b48..77f153ff3b0dec8267b4fb98d380b10727c9c674 100644 (file)
@@ -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:
 %
 %
 %        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;
index 19dea37146828d4ed4310dcdc70121881b686eca..a3ffabe7807e317cd1591a5df9f35f995c96ebe0 100644 (file)
@@ -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)
 }
index ea9d68dfa6591b0c53b828e23b9edaac21ca43ac..03582b136dfcb91391914c17fd84a980fc60e3d9 100644 (file)
@@ -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);
 }
index fb719027990b9321ba8bd4141d2043e7dc747e7d..cca29f2a9a1e5ab6d4706accda9fc509ee1b94b1 100644 (file)
@@ -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.
   */
index 6ab3fa9deddeb04e984ce7379ac366d5a799f0cc..5aa50d4e435bd1122bfefb5349f8ed974239670c 100644 (file)
@@ -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);
index 2b234b2a4d1e46690fc9b70eb4ecbf2c90628e94..bf009691249cbd42b8e2d25edb2e47b2ddfa52e7 100644 (file)
@@ -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;
     }
index b7757a6f34d313d05dd91dbc6996eaaf8cc4a834..26492ee9bef0116ab0e27f2608ad33b5d99db8f9 100644 (file)
@@ -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;
index fada3412df336bfbd1a216552edb553772196370..1752666abbd83fdce1ffd659d593daa5c1a73788 100644 (file)
@@ -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);
index 476668e651abce4a7006cc13a632afd66a67416b..bf79a4787461a1df7d9571df59e73abb07fae387 100644 (file)
@@ -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);
 }
 \f
 /*
index 3cdc1a8d47b109da221cf5eab27036570b38d779..86e04bd7a2e7090904165e1f991e8542a225b76a 100644 (file)
@@ -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 *);
index a9c9a78619a5934d1c2f09b67a5cb304f1c8517e..92ab7a0462660572b413e9f6b1520f559a168222 100644 (file)
@@ -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)
index 044b5e2b8e7bf1c1cb7db6755787051196d4788d..f695ea2dd3e938758420e6b23218f70fe6340fab 100644 (file)
@@ -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)
             {
index 414c6c2e610542840ea2ba6cd45e2363aa1d8e7c..6eeb38904bfd689a129bd6c1a565c8227a45f45d 100644 (file)
@@ -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 */
         }
index 4ba6a9d138cb26af8303f1982f06732cd80106d7..b8a088ecd96ce8138a851859ae842c9ece0f910d 100644 (file)
@@ -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++)
   {
index 1a4e8e7cc63a2fa7b75587690db732d98a61429b..f453eee5a0b21e8bd89b298fed8e20219552f54e 100644 (file)
@@ -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);
 }
 \f
@@ -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);
 }
 \f
@@ -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)
index a56976d885d95bcfa4cea667d306071a92170606..b5e196856abc755bd0e7b35908bd85e4ff6199d4 100644 (file)
@@ -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.
   */
index 5cd022b704286f75921c5a8007d3e3749541d4ce..22690fb5e5025b2888646260ba292e7d58fcc79b 100644 (file)
@@ -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);
   /*
index c99d4b69caf433b8caadea56b930f2ddd21c4479..e37e5072d003f524fe536b16993c3dc48b842554 100644 (file)
@@ -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 *),
index 745afc44ba6028c5fbb277859d6ed43206d301eb..7f692769bd77d3c77d4c18d2f231e39e17e6aa70 100644 (file)
@@ -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);
 }
 \f
@@ -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;
index 07098aa7e0b6b6b34c93642690b0af7d1db0ba6d..260ed34cf32f2c197afb0754cb43913b82c6f6b0 100644 (file)
@@ -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)
 }
index 4a232a838920d947e9521909813aa973c5c44dcc..4649415735d1e6630c9d051806991062db05b1d9 100644 (file)
@@ -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);
         }
     }
index 5e9d7780174d4f5567b3a66971326cecb7b434b3..aef8301255ba7cc7c8134ec91f438c3881b9cd5b 100644 (file)
@@ -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)
index d7f08f04847c87e06c60e3eeba74bfc5cd1480fa..00e6c40e20b22012b11800352209fbbd4b17bab7 100644 (file)
@@ -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
index 58d21d1d8a5227b4af5956461a63160cb3295ad6..ad6206dceeee45e53e2a34921b6b05ab88a3686b 100644 (file)
@@ -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);
 }
 \f
@@ -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);
 }
 \f
@@ -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));
 }
 \f
 /*
@@ -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));
 }
 \f
 /*
@@ -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));
 }
 \f
 /*
@@ -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);
 }
 \f
@@ -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));
 }
 \f
 /*
@@ -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);
 }
 \f
@@ -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));
 }
 \f
 /*
@@ -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));
 }
 \f
 /*
@@ -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);
 }
index 0ba24f562e2555eac0ea664a395f2980dd8cc105..ae2ddd7019e9bf9304d9016c3611ff00102724fe 100644 (file)
@@ -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,&region_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,&region_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);
index 76553d0e571e8b78e3596c5a898dec18365d5ade..560886dbe16e9887a41ff264c89b305a0d27e125 100644 (file)
@@ -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);
index 490d812c3d366e7f8c45a5fdd34c04a26c39f8b3..bcde36cc49a489c5d8fefa90fb4f2a8bd75358de 100644 (file)
@@ -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);
     /*
index c102f028893693a0af542d9038618c5ce0aee6fd..fbb85853e2b978baff34ef49d25477be129336b3 100644 (file)
@@ -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)
index 2127d905750b52e9815e2685171d1f4065ddc1c5..dc9012a35df5c6e346259f9b120032da7602e1a9 100644 (file)
@@ -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);
     /*
index d598b865b174dd9f6deb08d683b7375813fd39e1..24d3393a08eb64d05be20d63ccae688f7302618d 100644 (file)
@@ -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);
index 8c3b4a503fc884d6d85e57b4a3405c8cc090a740..972cf176781e0286cedfff532fa5110a82f5cd81 100644 (file)
@@ -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)
index 593b527110bac38e007ca31a7633664a1b9233f2..f7363df215fc21e2b202c7789a144b3f1bb6b11d 100644 (file)
@@ -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.
   */
index 2b8ea20fc433f265b7a5b0784da88756b11b7652..b21b342162dedafa3cefaee81ed4fc022f06098b 100644 (file)
@@ -236,7 +236,7 @@ static MagickBooleanType WriteCIPImage(const ImageInfo *image_info,Image *image,
   (void) WriteBlobString(image,buffer);
   (void) WriteBlobString(image,"<Data>");
   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);
index 5a102c26bc5ec840905b85d97c00371804ba9d4d..7777333fb662831518c8102c4e680c2d31cc7f90 100644 (file)
@@ -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);
index 80019d2a6621bf2e6a919f31ef9e6ad0b0d96aca..8e7f19cfc8667e2d136b90cca4152c6a02fdf42a 100644 (file)
@@ -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)
     {
       /*
index 2f378f83bfda129911abeb61a899e05fbcdcd95b..bc1c3bdfe78fc80240acb88be25cc417a141dd0a 100644 (file)
@@ -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))
     {
index f618c202791e96d3effef12096690b0bf5843ea1..34b7a4bd7615ddfea0092f44f085c7ad37d2b969 100644 (file)
@@ -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;
index b22c8a9fab2621d25fecbec950338363caf8a794..dcea2e38073a368db46ca515d97e10f6db392e2c 100644 (file)
@@ -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.
   */
index dd829fb9e98548ab522c55f6d67390324191ccfc..f6907552fadc2557d6d586ecec38ead528e565cc 100644 (file)
@@ -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)
index b3c135b6deeda425d48d93590d3ceef57081e1a6..35f74d895737badb6cac07e2a5161964725191e5 100644 (file)
@@ -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)
       {
index b0d33368dc69421aadaa09688eaf6ecc9df48637..e0353afdaa2fe4c5b1748f86bac3edb601445b0c 100644 (file)
@@ -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);
index 8b2c3106ef2af48ad651a8f808fc966f2424e455..7655df7a2b36e0f9738b451ca3d533a46fc3f4fa 100644 (file)
@@ -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)
index f4f0da07c20382e99c92797bcf74f3eab9435bc8..3bed84af457eff0b3e57930a9676899dbad8ed73 100644 (file)
@@ -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.
   */
index 32c5b2b8d1c30c4ca957a3887df9558d9fe81d15..9fe9ef3244095c51a3cbc446af2fd317973a7962 100644 (file)
@@ -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.
   */
index da660ae88e08fd9de0f2f8e9704ccaa02b4d4ce9..52186398a4d8c22972a0d25c9fe519e86df2fe61 100644 (file)
@@ -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))
index 25a082d247d0926b1041e55241a9eab92cddc053..29226c79a0525688997d41d73c9d9e2d10ff060a 100644 (file)
@@ -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;
index dcaa9a6487c72e65217862995043c780dddb2bec..5a78283b1ef457de40049c61a2572868bb61f8de 100644 (file)
@@ -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; }
index 0048cf84c7d99eeedfc9dd3fe8fb7f508f645e18..4faf712fb9d31dd71cb29eeb094cc94f582d6701 100644 (file)
@@ -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));
index d966bb3dcb9492ba1e29077e9a58df2a2c0bd64a..8831ae1db5f001f682e2197c325780bd99ff7e09 100644 (file)
@@ -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");
index af8c77c2646927d859399079d719976beb040c61..7a853d186a201e59ad812d04b7d31fac080e7d2b 100644 (file)
@@ -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;
     }
   }
index 8e3c009ddc9f53dbf6ecb978da5585e879c9d20a..49de6812075d2a3f09f7fd2367cf3ad12e5b2c4f 100644 (file)
@@ -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.
   */
index f5a852b0ac96da8cfd88fb8a275cc86316b51063..690f732b907f11a072df977c2c6fd212ea825c60 100644 (file)
@@ -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;
index aa0b0a6f6bf2b269558e7fa64a9d8e610fe117f0..bcb041012e2a7560c49cbe4a0ba72c5feca3abf3 100644 (file)
@@ -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.
   */
index d74616a66475aeaf677b46d17996adcdf38d55e8..6b55131793f72a89ed4ec614eceb327f0f46939d 100644 (file)
@@ -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)
index 6a0ebe1afde01a9646c9a5bb9c7dad884fecfb74..a60e1023ffaf410ce87a9a5ecbe53307e9c7b325 100644 (file)
@@ -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)
index 6985426f29afd8b928e71e3c5fcae1d4f2f1f79a..9c7ef2d8900fcdc6e6fc8f8adaac1a25ba2851d6 100644 (file)
@@ -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.
   */
index 28082bcc3969499876cd9323759452722befd755..9735b583e3c44aee2b1fcc82dc35481740126ef3 100644 (file)
@@ -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++)
           {
index 5101404527652e809beab7e7150663e7103d3dbf..f9dd5367c5260aa21d55ab093f3b2d92677eca59 100644 (file)
@@ -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);
index af0df4ff2767b9419bc96ffb09cfc247ad87f60e..bcf71267c83e4cb379a1ba6166527039c19a89b3 100644 (file)
@@ -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);
index 7f9c6071176de97435ae08e0ebe3581df392f7a7..4386e299ddc340943f1d6895510dd928a54b0f44 100644 (file)
@@ -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.
     */
index 11e7d3493c1ba9799af718310ab0b8ceb2f1a02a..14b4fb890b741fb07a0a489d2efd0c082b42c8b5 100644 (file)
@@ -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) &&
index 6202bc19a4d368b1f39462caf4dc1519fbbf7937..a014d1c3980da89b3d9c436895ade776150148c2 100644 (file)
@@ -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.
   */
index 0a86318d28c702b3293ab4e3541e83db18d63b16..db9499b3acdcbae9bfc17b84ced8a7753b3925bc 100644 (file)
@@ -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.
index 1b0973728db60ff39ffa7d78f08cd9c010a70893..eb3721ef69ca9cf90380588a2a91c2acf05bd27f 100644 (file)
@@ -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.
   */
index b863d541086fbd82dd7b1beb65c81f9946881f1c..289d60aa97385426777ea40661e1672a663166d4 100644 (file)
@@ -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;
 
index 483bb9b17aaadeba86abedfa321e7b352b6a072b..ba155cc46845a01fc3c95383aac13a9e1b5b554d 100644 (file)
@@ -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);
index 3ba4b38309f97469488630042f87294ce51871e3..4ec4d239e0f22a9cdcd95c2074eb3b470ee257c0 100644 (file)
@@ -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;
index 659f8e07874a7edae803cc389c55dfdfe32e544f..1514682157906b15dd09a85360aad87fc682ca12 100644 (file)
@@ -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)
     {
index 5742e9eb928ee18f6778d320ee008d4bbaf56e99..1206660292477e53f9cb0aa8fe3a11f656a91080 100644 (file)
@@ -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);
         }
     }
index ff1c65f4d65644b236cd9f76eb11b66e3fb3dec4..e97a7473df0fad9040cae5e35fd8b5e186e1891f 100644 (file)
@@ -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);
index ed4bc2644e3b4dd5994b440f9f3ec48d5b2bdbcf..90ba848303e5d1b1f0a2578a08cf5df6ecbba4f5 100644 (file)
@@ -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;
index b5cb53946a74dae84052273948b534db6b5b2502..673b5ad25b69fac00a46141e3a6d9885401f32f7 100644 (file)
@@ -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))
index 8187ec8e104cbbf32f01f536ad4b23bc0923e97d..850b75ea6f2b6352ba91f521d6c5817cd3a99244 100644 (file)
@@ -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)
index 27a0eaf2ad1ca893063536fb349a5aa85cbd81f0..2a8e17b98dc17d84ed393e62ce41cefaadda5a7c 100644 (file)
@@ -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
index cd0e42b16b10b354b4a591c72ebd7c35fd036b5e..fc7a1c737c2e430f0dec30b75acc64ce60b1aadd 100644 (file)
@@ -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));
 }
index 3f6cbdda96696168b880a1fe941ed11b355fea3f..d86cadf43c0f454b617c834eac697bb78e0d9e28 100644 (file)
@@ -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);
index 28003f3870e4606386284c2d64be56c0978f171d..3dc11fcb3c329cf05db5197a0676db9f549c4412 100644 (file)
@@ -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;
index f09d9342c87566fa40b6be5dee26da675417280b..0716579553ea10065d026190f1c95ab2d17faa3c 100644 (file)
@@ -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++)
index 2e7bb74341cda15075215e48fbaba3ecee56b8d4..b37213fcc49536961191c44d465fe4166b20fab7 100644 (file)
@@ -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.
   */
index aaba9f61c4645484cc63cafcb57fa579a2b4ade0..0241ad0cdf768e3396a856066f9ce180938414fd 100644 (file)
@@ -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;
index 2f77d2f8e354a1c8c0312bbac7feb40e696e4dd2..89f4370efe2e98213e9dbf8affa3205fc7038d57 100644 (file)
@@ -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.
   */
index eed9831de377be1288c3d7788cedff0ddd632b70..c5ccffc5405cccd5654c1230c3e08cfa64b1744c 100644 (file)
@@ -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.
   */
index e6caf55745dcd8f797933e2713b6a65b957059b7..6c5b89053a066ac1dcd372371e5c5f303b7bfcad 100644 (file)
@@ -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);
 
index f07adc34d90dbe7f5ed082b1533ca7db885728bd..4ac87217c7fb466ce341d2910a451e81974a30ff 100644 (file)
@@ -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)
     {
index 38b21fb9e027d8691319bae8e829345af498f0c8..b1be9aab68cd162c0e25bc88912ff35aafffa025 100644 (file)
@@ -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.
   */
index 9ff4db3510aff327382416a9cc033f2411a1c8d7..342f30730da650d0927ade27085c756364aaa296 100644 (file)
@@ -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);
index 331c028e73bfe3fa039e51cc39308627c69045b3..ab67250d55ab3255a66018eb2af5d74553561393 100644 (file)
@@ -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)
       {
         /*