diff --git a/MagickCore/animate.c b/MagickCore/animate.c
index 8d0e59a..d5c2a97 100644
--- a/MagickCore/animate.c
+++ b/MagickCore/animate.c
@@ -1929,7 +1929,7 @@
/*
Create X image.
*/
- (void) TransformImageColorspace(image_list[scene],RGBColorspace);
+ (void) TransformImageColorspace(image_list[scene],RGBColorspace,exception);
windows->image.pixmap=(Pixmap) NULL;
windows->image.matte_pixmap=(Pixmap) NULL;
if ((resource_info->map_type != (char *) NULL) ||
diff --git a/MagickCore/annotate.c b/MagickCore/annotate.c
index 2cc2968..ebc69f3 100644
--- a/MagickCore/annotate.c
+++ b/MagickCore/annotate.c
@@ -1748,7 +1748,7 @@
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 @@
(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 @@
annotate_view=DestroyCacheView(annotate_view);
(void) CompositeImage(image,OverCompositeOp,annotate_image,
(ssize_t) ceil(offset->x-0.5),(ssize_t) ceil(offset->y-(metrics->ascent+
- metrics->descent)-0.5));
+ metrics->descent)-0.5),exception);
}
annotate_image=DestroyImage(annotate_image);
return(MagickTrue);
diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c
index 9b477f6..ee31e69 100644
--- a/MagickCore/colorspace.c
+++ b/MagickCore/colorspace.c
@@ -226,7 +226,7 @@
break;
default:
{
- (void) TransformImageColorspace(image,image->colorspace);
+ (void) TransformImageColorspace(image,image->colorspace,exception);
break;
}
}
@@ -1214,7 +1214,7 @@
% 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 @@
%
% 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 @@
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
if (colorspace == UndefinedColorspace)
- return(SetImageColorspace(image,colorspace,&image->exception));
+ return(SetImageColorspace(image,colorspace,exception));
if (image->colorspace == colorspace)
return(MagickTrue);
if ((colorspace == RGBColorspace) || (colorspace == TransparentColorspace))
diff --git a/MagickCore/colorspace.h b/MagickCore/colorspace.h
index 22cf4a0..fdc9981 100644
--- a/MagickCore/colorspace.h
+++ b/MagickCore/colorspace.h
@@ -52,7 +52,7 @@
extern MagickExport MagickBooleanType
RGBTransformImage(Image *,const ColorspaceType),
SetImageColorspace(Image *,const ColorspaceType,ExceptionInfo *),
- TransformImageColorspace(Image *,const ColorspaceType),
+ TransformImageColorspace(Image *,const ColorspaceType,ExceptionInfo *),
TransformRGBImage(Image *,const ColorspaceType);
#if defined(__cplusplus) || defined(c_plusplus)
diff --git a/MagickCore/compare.c b/MagickCore/compare.c
index dc9f623..cea2647 100644
--- a/MagickCore/compare.c
+++ b/MagickCore/compare.c
@@ -265,7 +265,8 @@
highlight_view=DestroyCacheView(highlight_view);
reconstruct_view=DestroyCacheView(reconstruct_view);
image_view=DestroyCacheView(image_view);
- (void) CompositeImage(difference_image,image->compose,highlight_image,0,0);
+ (void) CompositeImage(difference_image,image->compose,highlight_image,0,0,
+ exception);
highlight_image=DestroyImage(highlight_image);
if (status == MagickFalse)
difference_image=DestroyImage(difference_image);
diff --git a/MagickCore/composite.c b/MagickCore/composite.c
index b893c51..77f153f 100644
--- a/MagickCore/composite.c
+++ b/MagickCore/composite.c
@@ -93,7 +93,7 @@
%
% MagickBooleanType CompositeImage(Image *image,
% const CompositeOperator compose,Image *composite_image,
-% const ssize_t x_offset,const ssize_t y_offset)
+% const ssize_t x_offset,const ssize_t y_offset,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -130,6 +130,8 @@
%
% Previous to IM v6.5.3-3 this was called "modify-outside-overlay"
%
+% o exception: return any errors or warnings in this structure.
+%
*/
static inline double MagickMin(const double x,const double y)
@@ -1545,7 +1547,7 @@
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 @@
double
sans;
- ExceptionInfo
- *exception;
-
GeometryInfo
geometry_info;
@@ -1602,7 +1601,6 @@
(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 @@
%
% 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 @@
% 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 @@
*image_view,
*texture_view;
- ExceptionInfo
- *exception;
-
MagickBooleanType
status;
@@ -2771,7 +2768,6 @@
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 @@
thread_status;
thread_status=CompositeImage(image,image->compose,texture,x+
- texture->tile_offset.x,y+texture->tile_offset.y);
+ texture->tile_offset.x,y+texture->tile_offset.y,exception);
if (thread_status == MagickFalse)
{
status=thread_status;
diff --git a/MagickCore/composite.h b/MagickCore/composite.h
index 19dea37..a3ffabe 100644
--- a/MagickCore/composite.h
+++ b/MagickCore/composite.h
@@ -96,8 +96,8 @@
extern MagickExport MagickBooleanType
CompositeImage(Image *,const CompositeOperator,const Image *,const ssize_t,
- const ssize_t),
- TextureImage(Image *,const Image *);
+ const ssize_t,ExceptionInfo *),
+ TextureImage(Image *,const Image *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
diff --git a/MagickCore/decorate.c b/MagickCore/decorate.c
index ea9d68d..03582b1 100644
--- a/MagickCore/decorate.c
+++ b/MagickCore/decorate.c
@@ -600,7 +600,7 @@
frame_info->inner_bevel);
y=(ssize_t) (frame_info->outer_bevel+(frame_info->y-bevel_width)+
frame_info->inner_bevel);
- (void) CompositeImage(frame_image,compose,image,x,y);
+ (void) CompositeImage(frame_image,compose,image,x,y,exception);
}
return(frame_image);
}
diff --git a/MagickCore/display.c b/MagickCore/display.c
index fb71902..cca29f2 100644
--- a/MagickCore/display.c
+++ b/MagickCore/display.c
@@ -4358,7 +4358,7 @@
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 @@
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 @@
*/
(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 @@
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 @@
/*
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 @@
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 @@
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 @@
return(MagickFalse);
(void) FormatLocaleString(geometry,MaxTextExtent,"%dx%d!",
windows->image.ximage->width,windows->image.ximage->height);
- (void) TransformImage(&save_image,windows->image.crop_geometry,geometry);
+ (void) TransformImage(&save_image,windows->image.crop_geometry,geometry,
+ exception);
/*
Write image.
*/
diff --git a/MagickCore/distort.c b/MagickCore/distort.c
index 6ab3fa9..5aa50d4 100644
--- a/MagickCore/distort.c
+++ b/MagickCore/distort.c
@@ -1474,7 +1474,7 @@
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 @@
return((Image *) NULL);
}
/* replace resize images alpha with the separally distorted alpha */
- (void) SetImageAlphaChannel(resize_image,DeactivateAlphaChannel,exception);
- (void) SetImageAlphaChannel(resize_alpha,DeactivateAlphaChannel,exception);
+ (void) SetImageAlphaChannel(resize_image,DeactivateAlphaChannel,
+ exception);
+ (void) SetImageAlphaChannel(resize_alpha,DeactivateAlphaChannel,
+ exception);
(void) CompositeImage(resize_image,CopyOpacityCompositeOp,resize_alpha,
- 0,0);
+ 0,0,exception);
resize_alpha=DestroyImage(resize_alpha);
}
(void) SetImageVirtualPixelMethod(resize_image,vp_save);
diff --git a/MagickCore/draw.c b/MagickCore/draw.c
index 2b234b2..bf00969 100644
--- a/MagickCore/draw.c
+++ b/MagickCore/draw.c
@@ -4481,13 +4481,14 @@
(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 @@
(void) DrawAffineImage(image,composite_image,&affine);
else
(void) CompositeImage(image,draw_info->compose,composite_image,
- geometry.x,geometry.y);
+ geometry.x,geometry.y,exception);
composite_image=DestroyImage(composite_image);
break;
}
diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index b7757a6..26492ee 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -2615,8 +2615,8 @@
preview_image=CloneImage(thumbnail,0,0,MagickTrue,exception);
if (preview_image == (Image *) NULL)
break;
- (void) BilevelImage(thumbnail,
- (double) (percentage*((MagickRealType) QuantumRange+1.0))/100.0);
+ (void) BilevelImage(thumbnail,(double) (percentage*((MagickRealType)
+ QuantumRange+1.0))/100.0,exception);
(void) FormatLocaleString(label,MaxTextExtent,"threshold %g",
(double) (percentage*((MagickRealType) QuantumRange+1.0))/100.0);
break;
diff --git a/MagickCore/fx.c b/MagickCore/fx.c
index fada341..1752666 100644
--- a/MagickCore/fx.c
+++ b/MagickCore/fx.c
@@ -3980,11 +3980,12 @@
}
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 @@
}
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 @@
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 @@
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 @@
return((Image *) NULL);
}
blur_image->matte=MagickFalse;
- (void) CompositeImage(canvas_image,CopyOpacityCompositeOp,blur_image,0,0);
+ (void) CompositeImage(canvas_image,CopyOpacityCompositeOp,blur_image,0,0,
+ exception);
blur_image=DestroyImage(blur_image);
vignette_image=MergeImageLayers(canvas_image,FlattenLayer,exception);
canvas_image=DestroyImage(canvas_image);
diff --git a/MagickCore/image.c b/MagickCore/image.c
index 476668e..bf79a47 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -2256,23 +2256,23 @@
%
% 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 @@
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 @@
{
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 @@
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 @@
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 @@
{
if (image->matte == MagickFalse)
{
- status=SetImageAlpha(image,OpaqueAlpha);
+ status=SetImageAlpha(image,OpaqueAlpha,exception);
image->matte=MagickTrue;
}
break;
@@ -2709,7 +2708,8 @@
%
% 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 @@
%
% 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 @@
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 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% 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 @@
% 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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
%
% The format of the StripImage method is:
%
-% MagickBooleanType StripImage(Image *image)
+% MagickBooleanType StripImage(Image *image,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
-MagickExport MagickBooleanType StripImage(Image *image)
+MagickExport MagickBooleanType StripImage(Image *image,ExceptionInfo *exception)
{
+ MagickBooleanType
+ status;
+
assert(image != (Image *) NULL);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
+ (void) exception;
DestroyImageProfiles(image);
(void) DeleteImageProperty(image,"comment");
(void) DeleteImageProperty(image,"date:create");
(void) DeleteImageProperty(image,"date:modify");
- (void) SetImageArtifact(image,"png:include-chunk","none,trns,gama");
- return(MagickTrue);
+ status=SetImageArtifact(image,"png:include-chunk","none,trns,gama");
+ return(status);
}
/*
diff --git a/MagickCore/image.h b/MagickCore/image.h
index 3cdc1a8..86e04bd 100644
--- a/MagickCore/image.h
+++ b/MagickCore/image.h
@@ -525,18 +525,18 @@
ListMagickInfo(FILE *,ExceptionInfo *),
ModifyImage(Image **,ExceptionInfo *),
ResetImagePage(Image *,const char *),
- SeparateImage(Image *),
- SetImageAlpha(Image *,const Quantum),
+ SeparateImage(Image *,ExceptionInfo *),
+ SetImageAlpha(Image *,const Quantum,ExceptionInfo *),
SetImageAlphaChannel(Image *,const AlphaChannelType,ExceptionInfo *),
SetImageBackgroundColor(Image *),
SetImageClipMask(Image *,const Image *,ExceptionInfo *),
- SetImageColor(Image *,const PixelInfo *),
+ SetImageColor(Image *,const PixelInfo *,ExceptionInfo *),
SetImageExtent(Image *,const size_t,const size_t,ExceptionInfo *),
SetImageInfo(ImageInfo *,const unsigned int,ExceptionInfo *),
SetImageMask(Image *,const Image *,ExceptionInfo *),
SetImageStorageClass(Image *,const ClassType,ExceptionInfo *),
SetImageType(Image *,const ImageType,ExceptionInfo *),
- StripImage(Image *),
+ StripImage(Image *,ExceptionInfo *),
SyncImage(Image *),
SyncImageSettings(const ImageInfo *,Image *),
SyncImagesSettings(ImageInfo *,Image *);
diff --git a/MagickCore/layer.c b/MagickCore/layer.c
index a9c9a78..92ab7a0 100644
--- a/MagickCore/layer.c
+++ b/MagickCore/layer.c
@@ -280,7 +280,7 @@
*/
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
% 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 @@
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 @@
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 @@
{
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 @@
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 @@
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 @@
% 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 @@
for (scene=0; scene < (ssize_t) number_images; scene++)
{
(void) CompositeImage(canvas,image->compose,image,image->page.x-
- canvas->page.x,image->page.y-canvas->page.y);
+ canvas->page.x,image->page.y-canvas->page.y,exception);
proceed=SetImageProgress(image,MergeLayersTag,(MagickOffsetType) scene,
number_images);
if (proceed == MagickFalse)
diff --git a/MagickCore/montage.c b/MagickCore/montage.c
index 044b5e2..f695ea2 100644
--- a/MagickCore/montage.c
+++ b/MagickCore/montage.c
@@ -679,7 +679,7 @@
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 @@
shadow_image=ShadowImage(image,80.0,2.0,5,5,exception);
if (shadow_image != (Image *) NULL)
{
- (void) CompositeImage(shadow_image,OverCompositeOp,image,0,0);
+ (void) CompositeImage(shadow_image,OverCompositeOp,image,0,0,
+ exception);
image=DestroyImage(image);
image=shadow_image;
}
}
(void) CompositeImage(montage,image->compose,image,x_offset+x,
- y_offset+y);
+ y_offset+y,exception);
value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
{
diff --git a/MagickCore/morphology.c b/MagickCore/morphology.c
index 414c6c2..6eeb389 100644
--- a/MagickCore/morphology.c
+++ b/MagickCore/morphology.c
@@ -3864,7 +3864,8 @@
/* 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 @@
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 @@
(void) FormatLocaleFile(stderr, " (compose \"%s\")",
CommandOptionToMnemonic(MagickComposeOptions, rslt_compose) );
rslt_image->sync=MagickFalse;
- (void) CompositeImage(rslt_image, rslt_compose, curr_image, 0, 0);
+ (void) CompositeImage(rslt_image, rslt_compose, curr_image, 0, 0,
+ exception);
curr_image = DestroyImage(curr_image);
curr_image = (Image *) image; /* continue with original image */
}
diff --git a/MagickCore/nt-base.c b/MagickCore/nt-base.c
index 4ba6a9d..b8a088e 100644
--- a/MagickCore/nt-base.c
+++ b/MagickCore/nt-base.c
@@ -216,7 +216,7 @@
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 @@
q=bitmap_bits;
if (bitmap.bmBits == NULL)
bitmap.bmBits=bitmap_bits;
- (void) TransformImageColorspace(image,RGBColorspace);
+ (void) TransformImageColorspace(image,RGBColorspace,exception);
exception=(&image->exception);
for (y=0; y < (ssize_t) image->rows; y++)
{
diff --git a/MagickCore/quantize.c b/MagickCore/quantize.c
index 1a4e8e7..f453eee 100644
--- a/MagickCore/quantize.c
+++ b/MagickCore/quantize.c
@@ -511,12 +511,12 @@
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 @@
(void) SyncImage(image);
if ((cube_info->quantize_info->colorspace != UndefinedColorspace) &&
(cube_info->quantize_info->colorspace != CMYKColorspace))
- (void) TransformImageColorspace((Image *) image,RGBColorspace);
+ (void) TransformImageColorspace((Image *) image,RGBColorspace,exception);
return(MagickTrue);
}
@@ -797,12 +797,12 @@
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 @@
image_view=DestroyCacheView(image_view);
if ((cube_info->quantize_info->colorspace != UndefinedColorspace) &&
(cube_info->quantize_info->colorspace != CMYKColorspace))
- (void) TransformImageColorspace((Image *) image,RGBColorspace);
+ (void) TransformImageColorspace((Image *) image,RGBColorspace,exception);
return(MagickTrue);
}
@@ -3241,7 +3241,7 @@
assert(image != (Image *) NULL);
assert(image->signature == MagickSignature);
if (image->type != GrayscaleType)
- (void) TransformImageColorspace(image,GRAYColorspace);
+ (void) TransformImageColorspace(image,GRAYColorspace,exception);
colormap_index=(ssize_t *) AcquireQuantumMemory(MaxMap+1,
sizeof(*colormap_index));
if (colormap_index == (ssize_t *) NULL)
diff --git a/MagickCore/segment.c b/MagickCore/segment.c
index a56976d..b5e1968 100644
--- a/MagickCore/segment.c
+++ b/MagickCore/segment.c
@@ -1830,7 +1830,7 @@
}
}
if (IsRGBColorspace(colorspace) == MagickFalse)
- (void) TransformImageColorspace(image,colorspace);
+ (void) TransformImageColorspace(image,colorspace,exception);
/*
Initialize histogram.
*/
@@ -1847,7 +1847,7 @@
status=Classify(image,extrema,cluster_threshold,WeightingExponent,verbose,
exception);
if (IsRGBColorspace(colorspace) == MagickFalse)
- (void) TransformImageColorspace(image,colorspace);
+ (void) TransformImageColorspace(image,colorspace,exception);
/*
Relinquish resources.
*/
diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c
index 5cd022b..22690fb 100644
--- a/MagickCore/threshold.c
+++ b/MagickCore/threshold.c
@@ -339,7 +339,8 @@
%
% 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 @@
%
% 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 @@
assert(image->signature == MagickSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
- exception=(&image->exception);
if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
return(MagickFalse);
/*
diff --git a/MagickCore/threshold.h b/MagickCore/threshold.h
index c99d4b6..e37e507 100644
--- a/MagickCore/threshold.h
+++ b/MagickCore/threshold.h
@@ -34,7 +34,7 @@
*GetThresholdMap(const char *,ExceptionInfo *);
extern MagickExport MagickBooleanType
- BilevelImage(Image *,const double),
+ BilevelImage(Image *,const double,ExceptionInfo *),
BlackThresholdImage(Image *,const char *,ExceptionInfo *),
ClampImage(Image *,ExceptionInfo *),
ListThresholdMaps(FILE *,ExceptionInfo *),
diff --git a/MagickCore/transform.c b/MagickCore/transform.c
index 745afc4..7f69276 100644
--- a/MagickCore/transform.c
+++ b/MagickCore/transform.c
@@ -1068,7 +1068,7 @@
extent_image->matte=MagickTrue;
(void) SetImageBackgroundColor(extent_image);
(void) CompositeImage(extent_image,image->compose,image,-geometry->x,
- -geometry->y);
+ -geometry->y,exception);
return(extent_image);
}
@@ -1951,7 +1951,7 @@
% 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 @@
% 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 @@
/*
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 @@
/*
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 @@
% 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 @@
% 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 @@
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 @@
for (i=0; image_list[i] != (Image *) NULL; i++)
{
image=image_list[i];
- status|=TransformImage(&image,crop_geometry,image_geometry);
+ status|=TransformImage(&image,crop_geometry,image_geometry,exception);
AppendImageToList(&transform_images,image);
}
*images=transform_images;
diff --git a/MagickCore/transform.h b/MagickCore/transform.h
index 07098aa..260ed34 100644
--- a/MagickCore/transform.h
+++ b/MagickCore/transform.h
@@ -39,8 +39,8 @@
*TrimImage(const Image *,ExceptionInfo *);
extern MagickExport MagickBooleanType
- TransformImage(Image **,const char *,const char *),
- TransformImages(Image **,const char *,const char *);
+ TransformImage(Image **,const char *,const char *,ExceptionInfo *),
+ TransformImages(Image **,const char *,const char *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
diff --git a/MagickCore/xwindow.c b/MagickCore/xwindow.c
index 4a232a8..4649415 100644
--- a/MagickCore/xwindow.c
+++ b/MagickCore/xwindow.c
@@ -214,9 +214,9 @@
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 @@
*/
(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 @@
(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 @@
*/
(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 @@
(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 @@
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 @@
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 @@
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 @@
%
% 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 @@
% 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 @@
{
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 @@
%
% 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 @@
% 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 @@
{
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);
}
}