#include "MagickCore/cache.h"
#include "MagickCore/cache-view.h"
#include "MagickCore/color.h"
-#include "MagickCore/colormap.h"
#include "MagickCore/color-private.h"
+#include "MagickCore/colormap.h"
#include "MagickCore/composite.h"
#include "MagickCore/constitute.h"
#include "MagickCore/decorate.h"
*/
#if defined(MAGICKCORE_XML_DELEGATE)
static MagickBooleanType
- WriteMSLImage(const ImageInfo *,Image *);
+ WriteMSLImage(const ImageInfo *,Image *,ExceptionInfo *);
static MagickBooleanType
SetMSLAttributes(MSLInfo *,const char *,const char *);
msl_info->draw_info[n]=CloneDrawInfo(msl_info->image_info[n-1],
msl_info->draw_info[n-1]);
if (image == (Image *) NULL)
- msl_info->attributes[n]=AcquireImage(msl_info->image_info[n]);
+ msl_info->attributes[n]=AcquireImage(msl_info->image_info[n],
+ &image->exception);
else
msl_info->attributes[n]=CloneImage(image,0,0,MagickTrue,&image->exception);
msl_info->image[n]=(Image *) image;
ChannelType
channel;
+ ChannelType
+ channel_mask;
+
char
key[MaxTextExtent],
*value;
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
}
- noise_image=AddNoiseImageChannel(msl_info->image[n],channel,noise,
+ channel_mask=SetPixelChannelMask(msl_info->image[n],channel);
+ noise_image=AddNoiseImage(msl_info->image[n],noise,
&msl_info->image[n]->exception);
+ (void) SetPixelChannelMap(msl_info->image[n],channel_mask);
if (noise_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
if (LocaleCompare(keyword, "fill") == 0)
{
- (void) QueryColorDatabase(value,&draw_info->fill,
- &exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &draw_info->fill,&exception);
break;
}
if (LocaleCompare(keyword,"family") == 0)
{
if (LocaleCompare(keyword,"geometry") == 0)
{
- flags=ParsePageGeometry(msl_info->image[n],value,
+ flags=ParseGravityGeometry(msl_info->image[n],value,
&geometry,&exception);
- if ((flags & HeightValue) == 0)
- geometry.height=geometry.width;
break;
}
if (LocaleCompare(keyword,"gravity") == 0)
{
- option=ParseCommandOption(MagickGravityOptions,MagickFalse,
- value);
+ option=ParseCommandOption(MagickGravityOptions,
+ MagickFalse,value);
if (option < 0)
ThrowMSLException(OptionError,"UnrecognizedGravityType",
value);
}
if (LocaleCompare(keyword,"stretch") == 0)
{
- option=ParseCommandOption(MagickStretchOptions,MagickFalse,
- value);
+ option=ParseCommandOption(MagickStretchOptions,
+ MagickFalse,value);
if (option < 0)
ThrowMSLException(OptionError,"UnrecognizedStretchType",
value);
}
if (LocaleCompare(keyword, "stroke") == 0)
{
- (void) QueryColorDatabase(value,&draw_info->stroke,
- &exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &draw_info->stroke,&exception);
break;
}
if (LocaleCompare(keyword,"strokewidth") == 0)
{
if (LocaleCompare(keyword, "undercolor") == 0)
{
- (void) QueryColorDatabase(value,&draw_info->undercolor,
- &exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &draw_info->undercolor,&exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",
affine.tx;
draw_info->affine.ty=affine.rx*current.tx+affine.sy*current.ty+
affine.ty;
- (void) AnnotateImage(msl_info->image[n],draw_info);
+ (void) AnnotateImage(msl_info->image[n],draw_info,
+ &msl_info->image[n]->exception);
draw_info=DestroyDrawInfo(draw_info);
break;
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
}
- blur_image=BlurImageChannel(msl_info->image[n],channel,
- geometry_info.rho,geometry_info.sigma,
+ channel_mask=SetPixelChannelMask(msl_info->image[n],channel);
+ blur_image=BlurImage(msl_info->image[n],geometry_info.rho,
+ geometry_info.sigma,geometry_info.xi,
&msl_info->image[n]->exception);
+ (void) SetPixelChannelMap(msl_info->image[n],channel_mask);
if (blur_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
if (LocaleCompare(keyword, "fill") == 0)
{
- (void) QueryColorDatabase(value,
+ (void) QueryColorCompliance(value,AllCompliance,
&msl_info->image[n]->border_color,&exception);
break;
}
}
}
border_image=BorderImage(msl_info->image[n],&geometry,
- &msl_info->image[n]->exception);
+ msl_info->image[n]->compose,&msl_info->image[n]->exception);
if (border_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
if (LocaleCompare(keyword,"fill") == 0)
{
- (void) QueryColorDatabase(value,&target,
+ (void) QueryColorCompliance(value,AllCompliance,&target,
&msl_info->image[n]->exception);
break;
}
}
if (LocaleCompare((const char *) tag, "charcoal") == 0)
{
- double radius = 0.0,
+ double bias = 0.0,
+ radius = 0.0,
sigma = 1.0;
if (msl_info->image[n] == (Image *) NULL)
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
+ case 'B':
+ case 'b':
+ {
+ if (LocaleCompare(keyword, "bias") == 0)
+ {
+ bias = InterpretLocaleValue(value,(char **) NULL);
+ break;
+ }
+ ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
+ break;
+ }
case 'R':
case 'r':
{
Image
*newImage;
- newImage=CharcoalImage(msl_info->image[n],radius,sigma,
+ newImage=CharcoalImage(msl_info->image[n],radius,sigma,bias,
&msl_info->image[n]->exception);
if (newImage == (Image *) NULL)
break;
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
if (LocaleCompare(keyword,"bordercolor") == 0)
{
- (void) QueryMagickColor(value,&target,&exception);
+ (void) QueryMagickColorCompliance(value,AllCompliance,
+ &target,&exception);
paint_method=FillToBorderMethod;
break;
}
{
if (LocaleCompare(keyword,"fill") == 0)
{
- (void) QueryColorDatabase(value,&draw_info->fill,
- &exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &draw_info->fill,&exception);
break;
}
if (LocaleCompare(keyword,"fuzz") == 0)
}
}
}
- (void) FloodfillPaintImage(msl_info->image[n],DefaultChannels,
- draw_info,&target,geometry.x,geometry.y,
- paint_method == FloodfillMethod ? MagickFalse : MagickTrue);
+ (void) FloodfillPaintImage(msl_info->image[n],draw_info,&target,
+ geometry.x,geometry.y,paint_method == FloodfillMethod ?
+ MagickFalse : MagickTrue,&msl_info->image[n]->exception);
draw_info=DestroyDrawInfo(draw_info);
break;
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
if (LocaleCompare(keyword, "color") == 0)
{
- (void) QueryColorDatabase(value,
+ (void) QueryColorCompliance(value,AllCompliance,
&composite_image->background_color,&exception);
break;
}
if ((attribute != (const char *) NULL) &&
(LocaleCompare(value,value) == 0))
{
- SetImageType(composite_image,TrueColorMatteType);
+ SetImageType(composite_image,TrueColorMatteType,
+ &exception);
(void) CompositeImage(composite_image,
CopyOpacityCompositeOp,msl_info->image[j],0,0);
break;
geometry.y);
flags=ParseGravityGeometry(image,composite_geometry,&geometry,
&exception);
+ channel_mask=SetPixelChannelMask(image,channel);
if (rotate_image == (Image *) NULL)
- CompositeImageChannel(image,channel,compose,composite_image,
- geometry.x,geometry.y);
+ CompositeImage(image,compose,composite_image,geometry.x,geometry.y);
else
{
/*
geometry.x-=(ssize_t) (rotate_image->columns-
composite_image->columns)/2;
geometry.y-=(ssize_t) (rotate_image->rows-composite_image->rows)/2;
- CompositeImageChannel(image,channel,compose,rotate_image,
- geometry.x,geometry.y);
+ CompositeImage(image,compose,rotate_image,geometry.x,geometry.y);
rotate_image=DestroyImage(rotate_image);
}
+ (void) SetPixelChannelMask(image,channel_mask);
composite_image=DestroyImage(composite_image);
break;
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
}
- (void) ContrastImage(msl_info->image[n],sharpen);
+ (void) ContrastImage(msl_info->image[n],sharpen,
+ &msl_info->image[n]->exception);
break;
}
if (LocaleCompare((const char *) tag,"crop") == 0)
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
if (LocaleCompare(keyword,"geometry") == 0)
{
- flags=ParsePageGeometry(msl_info->image[n],value,
+ flags=ParseGravityGeometry(msl_info->image[n],value,
&geometry,&exception);
- if ((flags & HeightValue) == 0)
- geometry.height=geometry.width;
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
}
- (void) CycleColormapImage(msl_info->image[n],display);
+ (void) CycleColormapImage(msl_info->image[n],display,&exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag);
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
}
- (void) DisplayImages(msl_info->image_info[n],msl_info->image[n]);
+ (void) DisplayImages(msl_info->image_info[n],msl_info->image[n],
+ &msl_info->image[n]->exception);
break;
}
if (LocaleCompare((const char *) tag,"draw") == 0)
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
if (LocaleCompare(keyword, "fill") == 0)
{
- (void) QueryColorDatabase(value,&draw_info->fill,
- &exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &draw_info->fill,&exception);
break;
}
if (LocaleCompare(keyword,"family") == 0)
}
if (LocaleCompare(keyword,"stretch") == 0)
{
- option=ParseCommandOption(MagickStretchOptions,MagickFalse,
- value);
+ option=ParseCommandOption(MagickStretchOptions,
+ MagickFalse,value);
if (option < 0)
ThrowMSLException(OptionError,"UnrecognizedStretchType",
value);
}
if (LocaleCompare(keyword, "stroke") == 0)
{
- (void) QueryColorDatabase(value,&draw_info->stroke,
- &exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &draw_info->stroke,&exception);
break;
}
if (LocaleCompare(keyword,"strokewidth") == 0)
{
if (LocaleCompare(keyword, "undercolor") == 0)
{
- (void) QueryColorDatabase(value,&draw_info->undercolor,
- &exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &draw_info->undercolor,&exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",
affine.tx;
draw_info->affine.ty=affine.rx*current.tx+affine.sy*current.ty+
affine.ty;
- (void) DrawImage(msl_info->image[n],draw_info);
+ (void) DrawImage(msl_info->image[n],draw_info,&exception);
draw_info=DestroyDrawInfo(draw_info);
break;
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
edge_image=EdgeImage(msl_info->image[n],geometry_info.rho,
- &msl_info->image[n]->exception);
+ geometry_info.sigma,&msl_info->image[n]->exception);
if (edge_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
}
- (void) EqualizeImage(msl_info->image[n]);
+ (void) EqualizeImage(msl_info->image[n],
+ &msl_info->image[n]->exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag);
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
if (LocaleCompare(keyword, "fill") == 0)
{
- (void) QueryColorDatabase(value,
+ (void) QueryColorCompliance(value,AllCompliance,
&msl_info->image[n]->matte_color,&exception);
break;
}
frame_info.width=msl_info->image[n]->columns+2*frame_info.x;
frame_info.height=msl_info->image[n]->rows+2*frame_info.y;
frame_image=FrameImage(msl_info->image[n],&frame_info,
- &msl_info->image[n]->exception);
+ msl_info->image[n]->compose,&msl_info->image[n]->exception);
if (frame_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
if (*gamma == '\0')
(void) FormatLocaleString(gamma,MaxTextExtent,"%g,%g,%g",
(double) pixel.red,(double) pixel.green,(double) pixel.blue);
- switch (channel)
- {
- default:
- {
- (void) GammaImage(msl_info->image[n],gamma);
- break;
- }
- case RedChannel:
- {
- (void) GammaImageChannel(msl_info->image[n],RedChannel,pixel.red);
- break;
- }
- case GreenChannel:
- {
- (void) GammaImageChannel(msl_info->image[n],GreenChannel,
- pixel.green);
- break;
- }
- case BlueChannel:
- {
- (void) GammaImageChannel(msl_info->image[n],BlueChannel,
- pixel.blue);
- break;
- }
- }
+ (void) GammaImage(msl_info->image[n],atof(gamma),
+ &msl_info->image[n]->exception);
break;
}
else if (LocaleCompare((const char *) tag,"get") == 0)
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'C':
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
implode_image=ImplodeImage(msl_info->image[n],geometry_info.rho,
- &msl_info->image[n]->exception);
+ msl_info->image[n]->interpolate,&msl_info->image[n]->exception);
if (implode_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
}
/* process image */
- LevelImage(msl_info->image[n],levelBlack,levelWhite,levelGamma);
+ LevelImage(msl_info->image[n],levelBlack,levelWhite,levelGamma,
+ &msl_info->image[n]->exception);
break;
}
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
quantize_info=AcquireQuantizeInfo(msl_info->image_info[n]);
quantize_info->dither=dither;
(void) RemapImages(quantize_info,msl_info->image[n],
- affinity_image);
+ affinity_image,&exception);
quantize_info=DestroyQuantizeInfo(quantize_info);
affinity_image=DestroyImage(affinity_image);
break;
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
if (LocaleCompare(keyword,"bordercolor") == 0)
{
- (void) QueryMagickColor(value,&target,&exception);
+ (void) QueryMagickColorCompliance(value,AllCompliance,
+ &target,&exception);
paint_method=FillToBorderMethod;
break;
}
draw_info=CloneDrawInfo(msl_info->image_info[n],
msl_info->draw_info[n]);
draw_info->fill.alpha=ClampToQuantum(opacity);
- (void) FloodfillPaintImage(msl_info->image[n],OpacityChannel,
- draw_info,&target,geometry.x,geometry.y,
- paint_method == FloodfillMethod ? MagickFalse : MagickTrue);
+ channel_mask=SetPixelChannelMask(msl_info->image[n],AlphaChannel);
+ (void) FloodfillPaintImage(msl_info->image[n],draw_info,&target,
+ geometry.x,geometry.y,paint_method == FloodfillMethod ?
+ MagickFalse : MagickTrue,&msl_info->image[n]->exception);
+ (void) SetPixelChannelMap(msl_info->image[n],channel_mask);
draw_info=DestroyDrawInfo(draw_info);
break;
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
(void) FormatLocaleString(modulate,MaxTextExtent,"%g,%g,%g",
geometry_info.rho,geometry_info.sigma,geometry_info.xi);
- (void) ModulateImage(msl_info->image[n],modulate);
+ (void) ModulateImage(msl_info->image[n],modulate,
+ &msl_info->image[n]->exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag);
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
}
- (void) NegateImageChannel(msl_info->image[n],channel,gray);
+ channel_mask=SetPixelChannelMask(msl_info->image[n],channel);
+ (void) NegateImage(msl_info->image[n],gray,
+ &msl_info->image[n]->exception);
+ (void) SetPixelChannelMap(msl_info->image[n],channel_mask);
break;
}
if (LocaleCompare((const char *) tag,"normalize") == 0)
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
}
- (void) NormalizeImageChannel(msl_info->image[n],channel);
+ (void) NormalizeImage(msl_info->image[n],
+ &msl_info->image[n]->exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag);
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
paint_image=OilPaintImage(msl_info->image[n],geometry_info.rho,
- &msl_info->image[n]->exception);
+ geometry_info.sigma,&msl_info->image[n]->exception);
if (paint_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
(const char *) tag);
break;
}
- (void) QueryMagickColor("none",&target,&exception);
- (void) QueryMagickColor("none",&fill_color,&exception);
+ (void) QueryMagickColorCompliance("none",AllCompliance,&target,
+ &exception);
+ (void) QueryMagickColorCompliance("none",AllCompliance,&fill_color,
+ &exception);
if (attributes != (const xmlChar **) NULL)
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
if (LocaleCompare(keyword,"fill") == 0)
{
- (void) QueryMagickColor(value,&fill_color,&exception);
+ (void) QueryMagickColorCompliance(value,AllCompliance,
+ &fill_color,&exception);
break;
}
if (LocaleCompare(keyword,"fuzz") == 0)
}
}
}
- (void) OpaquePaintImageChannel(msl_info->image[n],channel,
- &target,&fill_color,MagickFalse);
+ channel_mask=SetPixelChannelMask(msl_info->image[n],channel);
+ (void) OpaquePaintImage(msl_info->image[n],&target,&fill_color,
+ MagickFalse,&msl_info->image[n]->exception);
+ (void) SetPixelChannelMap(msl_info->image[n],channel_mask);
break;
}
ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag);
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
if (*keyword == '+')
{
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
}
- (void) QuantizeImage(&quantize_info,msl_info->image[n]);
+ (void) QuantizeImage(&quantize_info,msl_info->image[n],&exception);
break;
}
if (LocaleCompare((const char *) tag,"query-font-metrics") == 0)
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
if (LocaleCompare(keyword, "fill") == 0)
{
- (void) QueryColorDatabase(value,&draw_info->fill,
- &exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &draw_info->fill,&exception);
break;
}
if (LocaleCompare(keyword,"family") == 0)
}
if (LocaleCompare(keyword,"stretch") == 0)
{
- option=ParseCommandOption(MagickStretchOptions,MagickFalse,
- value);
+ option=ParseCommandOption(MagickStretchOptions,
+ MagickFalse,value);
if (option < 0)
ThrowMSLException(OptionError,"UnrecognizedStretchType",
value);
}
if (LocaleCompare(keyword, "stroke") == 0)
{
- (void) QueryColorDatabase(value,&draw_info->stroke,
- &exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &draw_info->stroke,&exception);
break;
}
if (LocaleCompare(keyword,"strokewidth") == 0)
{
if (LocaleCompare(keyword, "undercolor") == 0)
{
- (void) QueryColorDatabase(value,&draw_info->undercolor,
- &exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &draw_info->undercolor,&exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",
affine.tx;
draw_info->affine.ty=affine.rx*current.tx+affine.sy*current.ty+
affine.ty;
- status=GetTypeMetrics(msl_info->attributes[n],draw_info,&metrics);
+ status=GetTypeMetrics(msl_info->attributes[n],draw_info,&metrics,
+ &msl_info->image[n]->exception);
if (status != MagickFalse)
{
Image
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
}
- (void) RaiseImage(msl_info->image[n],&geometry,raise);
+ (void) RaiseImage(msl_info->image[n],&geometry,raise,
+ &msl_info->image[n]->exception);
break;
}
if (LocaleCompare((const char *) tag,"read") == 0)
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'F':
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'G':
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'b':
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'G':
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'D':
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
(void) SegmentImage(msl_info->image[n],colorspace,verbose,
- geometry_info.rho,geometry_info.sigma);
+ geometry_info.rho,geometry_info.sigma,&exception);
break;
}
else if (LocaleCompare((const char *) tag, "set") == 0)
{
if (msl_info->image[n] == (Image *) NULL)
{
- ThrowMSLException(OptionError,"NoImagesDefined",
- (const char *) tag);
+ ThrowMSLException(OptionError,"NoImagesDefined",(const char *) tag);
break;
}
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'C':
property=GetImageProperty(msl_info->attributes[j],"id");
if (LocaleCompare(property,value) == 0)
{
- SetImageMask(msl_info->image[n],msl_info->image[j]);
+ SetImageMask(msl_info->image[n],msl_info->image[j],
+ &exception);
break;
}
}
property=GetImageProperty(msl_info->attributes[j],"id");
if (LocaleCompare(property,value) == 0)
{
- SetImageClipMask(msl_info->image[n],msl_info->image[j]);
+ SetImageClipMask(msl_info->image[n],msl_info->image[j],
+ &exception);
break;
}
}
break;
}
(void) SetMSLAttributes(msl_info,keyword,value);
+ (void) SetImageProperty(msl_info->image[n],keyword,value);
break;
}
case 'D':
break;
}
(void) SetMSLAttributes(msl_info,keyword,value);
+ (void) SetImageProperty(msl_info->image[n],keyword,value);
break;
}
case 'O':
break;
}
(void) SetMSLAttributes(msl_info,keyword,value);
+ (void) SetImageProperty(msl_info->image[n],keyword,value);
break;
}
case 'P':
break;
}
(void) SetMSLAttributes(msl_info,keyword,value);
+ (void) SetImageProperty(msl_info->image[n],keyword,value);
break;
}
default:
{
(void) SetMSLAttributes(msl_info,keyword,value);
+ (void) SetImageProperty(msl_info->image[n],keyword,value);
break;
}
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
if (LocaleCompare((const char *) tag,"sharpen") == 0)
{
- double radius = 0.0,
+ double bias = 0.0,
+ radius = 0.0,
sigma = 1.0;
if (msl_info->image[n] == (Image *) NULL)
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
+ case 'B':
+ case 'b':
+ {
+ if (LocaleCompare(keyword, "bias") == 0)
+ {
+ bias = InterpretLocaleValue(value,(char **) NULL);
+ break;
+ }
+ ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
+ break;
+ }
case 'R':
case 'r':
{
Image
*newImage;
- newImage=SharpenImage(msl_info->image[n],radius,sigma,&msl_info->image[n]->exception);
+ newImage=SharpenImage(msl_info->image[n],radius,sigma,bias,
+ &msl_info->image[n]->exception);
if (newImage == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'G':
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
if (LocaleCompare(keyword, "fill") == 0)
{
- (void) QueryColorDatabase(value,
+ (void) QueryColorCompliance(value,AllCompliance,
&msl_info->image[n]->background_color,&exception);
break;
}
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
}
- (void) SignatureImage(msl_info->image[n]);
+ (void) SignatureImage(msl_info->image[n],&exception);
break;
}
if (LocaleCompare((const char *) tag,"solarize") == 0)
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
}
- (void) SolarizeImage(msl_info->image[n],geometry_info.rho);
+ (void) SolarizeImage(msl_info->image[n],geometry_info.rho,
+ &msl_info->image[n]->exception);
break;
}
if (LocaleCompare((const char *) tag,"spread") == 0)
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
spread_image=SpreadImage(msl_info->image[n],geometry_info.rho,
- &msl_info->image[n]->exception);
+ msl_info->image[n]->interpolate,&msl_info->image[n]->exception);
if (spread_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'I':
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'I':
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
}
}
swirl_image=SwirlImage(msl_info->image[n],geometry_info.rho,
- &msl_info->image[n]->exception);
+ msl_info->image[n]->interpolate,&msl_info->image[n]->exception);
if (swirl_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]);
+ msl_info->attributes[n],(const char *) attributes[i],
+ &exception);
CloneString(&value,attribute);
switch (*keyword)
{
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'T':
process image.
*/
{
- BilevelImageChannel(msl_info->image[n],
- (ChannelType) ((ssize_t) (CompositeChannels &~ (ssize_t) OpacityChannel)),
- threshold);
+ BilevelImage(msl_info->image[n],threshold);
break;
}
}
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'C':
PixelInfo
target;
- (void) QueryMagickColor(value,&target,&exception);
+ (void) QueryMagickColorCompliance(value,AllCompliance,&target,
+ &exception);
(void) TransparentPaintImage(msl_info->image[n],&target,
- TransparentAlpha,MagickFalse);
+ TransparentAlpha,MagickFalse,&msl_info->image[n]->exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
{
keyword=(const char *) attributes[i++];
CloneString(&value,InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i]));
+ msl_info->attributes[n],(const char *) attributes[i],&exception));
switch (*keyword)
{
case 'F':
/* process */
{
- (void) WriteImage(msl_info->image_info[n], msl_info->image[n]);
+ (void) WriteImage(msl_info->image_info[n], msl_info->image[n],
+ &msl_info->image[n]->exception);
break;
}
}
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
assert(image != (Image **) NULL);
- msl_image=AcquireImage(image_info);
+ msl_image=AcquireImage(image_info,exception);
status=OpenBlob(image_info,msl_image,ReadBinaryBlobMode,exception);
if (status == MagickFalse)
{
"UnableToInterpretMSLImage");
*msl_info.image_info=CloneImageInfo(image_info);
*msl_info.draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);
- *msl_info.attributes=AcquireImage(image_info);
+ *msl_info.attributes=AcquireImage(image_info,exception);
msl_info.group_info[0].numImages=0;
/* the first slot is used to point to the MSL file image */
*msl_info.image=msl_image;
if (alpha < 0)
ThrowMSLException(OptionError,"UnrecognizedType",value);
if (image != (Image *) NULL)
- (void) SetImageAlphaChannel(image,(AlphaChannelType) alpha);
+ (void) SetImageAlphaChannel(image,(AlphaChannelType) alpha,
+ exception);
break;
}
if (LocaleCompare(keyword,"antialias") == 0)
{
if (LocaleCompare(keyword,"background") == 0)
{
- (void) QueryColorDatabase(value,&image_info->background_color,
- exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &image_info->background_color,exception);
break;
}
if (LocaleCompare(keyword,"bias") == 0)
}
if (LocaleCompare(keyword,"bordercolor") == 0)
{
- (void) QueryColorDatabase(value,&image_info->border_color,
- exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &image_info->border_color,exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
{
if (LocaleCompare(keyword,"fill") == 0)
{
- (void) QueryColorDatabase(value,&draw_info->fill,exception);
+ (void) QueryColorCompliance(value,AllCompliance,&draw_info->fill,
+ exception);
(void) SetImageOption(image_info,keyword,value);
break;
}
}
if (LocaleCompare(keyword,"mattecolor") == 0)
{
- (void) QueryColorDatabase(value,&image_info->matte_color,
- exception);
+ (void) QueryColorCompliance(value,AllCompliance,
+ &image_info->matte_color,exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
if (LocaleCompare(keyword,"stroke") == 0)
{
- (void) QueryColorDatabase(value,&draw_info->stroke,exception);
+ (void) QueryColorCompliance(value,AllCompliance,&draw_info->stroke,
+ exception);
(void) SetImageOption(image_info,keyword,value);
break;
}
%
% The format of the WriteMSLImage method is:
%
-% MagickBooleanType WriteMSLImage(const ImageInfo *image_info,Image *image)
+% MagickBooleanType WriteMSLImage(const ImageInfo *image_info,
+% Image *image,ExceptionInfo *exception)
%
% A description of each parameter follows.
%
%
% o image: The image.
%
+% o exception: return any errors or warnings in this structure.
+%
*/
-static MagickBooleanType WriteMSLImage(const ImageInfo *image_info,Image *image)
+static MagickBooleanType WriteMSLImage(const ImageInfo *image_info,Image *image,
+ ExceptionInfo *exception)
{
assert(image_info != (const ImageInfo *) NULL);
assert(image_info->signature == MagickSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
(void) ReferenceImage(image);
- (void) ProcessMSLScript(image_info,&image,&image->exception);
+ (void) ProcessMSLScript(image_info,&image,exception);
return(MagickTrue);
}
#endif