% December 2001 %
% %
% %
-% Copyright 1999-2014 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2017 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
ExceptionInfo *exception)
{
char
- key[MaxTextExtent];
+ key[MagickPathExtent];
ExceptionInfo
*sans_exception;
ImageInfo
*read_info;
- (void) FormatLocaleString(key,MaxTextExtent,"cache:%s",path);
+ (void) FormatLocaleString(key,MagickPathExtent,"cache:%s",path);
sans_exception=AcquireExceptionInfo();
image=(Image *) GetImageRegistry(ImageRegistryType,key,sans_exception);
sans_exception=DestroyExceptionInfo(sans_exception);
if (image != (Image *) NULL)
return(image);
read_info=CloneImageInfo(image_info);
- (void) CopyMagickString(read_info->filename,path,MaxTextExtent);
+ (void) CopyMagickString(read_info->filename,path,MagickPathExtent);
image=ReadImage(read_info,exception);
read_info=DestroyImageInfo(read_info);
if (image != (Image *) NULL)
channel_mask;
char
- key[MaxTextExtent],
+ key[MagickPathExtent],
*value;
const char
if (LocaleCompare((const char *) tag,"annotate") == 0)
{
char
- text[MaxTextExtent];
+ text[MagickPathExtent];
/*
Annotate image.
}
}
}
- (void) FormatLocaleString(text,MaxTextExtent,
+ (void) FormatLocaleString(text,MagickPathExtent,
"%.20gx%.20g%+.20g%+.20g",(double) geometry.width,(double)
geometry.height,(double) geometry.x,(double) geometry.y);
CloneString(&draw_info->geometry,text);
if (LocaleCompare((const char *) tag,"colorize") == 0)
{
char
- blend[MaxTextExtent];
+ blend[MagickPathExtent];
Image
*colorize_image;
break;
}
GetPixelInfo(msl_info->image[n],&target);
- (void) CopyMagickString(blend,"100",MaxTextExtent);
+ (void) CopyMagickString(blend,"100",MagickPathExtent);
if (attributes != (const xmlChar **) NULL)
for (i=0; (attributes[i] != (const xmlChar *) NULL); i++)
{
{
if (LocaleCompare(keyword,"blend") == 0)
{
- (void) CopyMagickString(blend,value,MaxTextExtent);
+ (void) CopyMagickString(blend,value,MagickPathExtent);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",
if (LocaleCompare((const char *) tag,"composite") == 0)
{
char
- composite_geometry[MaxTextExtent];
+ composite_geometry[MagickPathExtent];
CompositeOperator
compose;
if ((attribute != (const char *) NULL) &&
(LocaleCompare(value,value) == 0))
{
- SetImageType(composite_image,TrueColorMatteType,
+ SetImageType(composite_image,TrueColorAlphaType,
exception);
(void) CompositeImage(composite_image,
msl_info->image[j],CopyAlphaCompositeOp,MagickTrue,
}
(void) SetImageArtifact(msl_info->image[n],
"compose:args",value);
- if (composite_image->alpha_trait != BlendPixelTrait)
+ if (composite_image->alpha_trait == UndefinedPixelTrait)
(void) SetImageAlpha(composite_image,OpaqueAlpha,
exception);
composite_view=AcquireAuthenticCacheView(composite_image,exception);
}
}
image=msl_info->image[n];
- (void) FormatLocaleString(composite_geometry,MaxTextExtent,
+ (void) FormatLocaleString(composite_geometry,MagickPathExtent,
"%.20gx%.20g%+.20g%+.20g",(double) composite_image->columns,
(double) composite_image->rows,(double) geometry.x,(double)
geometry.y);
if (LocaleCompare((const char *) tag,"draw") == 0)
{
char
- text[MaxTextExtent];
+ text[MagickPathExtent];
/*
Annotate image.
{
if (LocaleCompare(keyword,"text") == 0)
{
- CloneString(&draw_info->text,value);
+ (void) ConcatenateString(&draw_info->primitive," '");
+ (void) ConcatenateString(&draw_info->primitive,value);
+ (void) ConcatenateString(&draw_info->primitive,"'");
break;
}
if (LocaleCompare(keyword,"translate") == 0)
}
}
}
- (void) FormatLocaleString(text,MaxTextExtent,
+ (void) FormatLocaleString(text,MagickPathExtent,
"%.20gx%.20g%+.20g%+.20g",(double) geometry.width,(double)
geometry.height,(double) geometry.x,(double) geometry.y);
CloneString(&draw_info->geometry,text);
if (LocaleCompare(keyword, "fill") == 0)
{
(void) QueryColorCompliance(value,AllCompliance,
- &msl_info->image[n]->matte_color,exception);
+ &msl_info->image[n]->alpha_color,exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",
if (LocaleCompare((const char *) tag,"gamma") == 0)
{
char
- gamma[MaxTextExtent];
+ gamma[MagickPathExtent];
PixelInfo
pixel;
{
if (LocaleCompare(keyword,"gamma") == 0)
{
- (void) CopyMagickString(gamma,value,MaxTextExtent);
+ (void) CopyMagickString(gamma,value,MagickPathExtent);
break;
}
if (LocaleCompare(keyword,"green") == 0)
}
}
if (*gamma == '\0')
- (void) FormatLocaleString(gamma,MaxTextExtent,"%g,%g,%g",
+ (void) FormatLocaleString(gamma,MagickPathExtent,"%g,%g,%g",
(double) pixel.red,(double) pixel.green,(double) pixel.blue);
- (void) GammaImage(msl_info->image[n],atof(gamma),
+ (void) GammaImage(msl_info->image[n],strtod(gamma,(char **) NULL),
msl_info->exception);
break;
}
{
keyword=(const char *) attributes[i++];
CloneString(&value,(const char *) attributes[i]);
- (void) CopyMagickString(key,value,MaxTextExtent);
+ (void) CopyMagickString(key,value,MagickPathExtent);
switch (*keyword)
{
case 'H':
{
if (LocaleCompare(keyword,"height") == 0)
{
- (void) FormatLocaleString(value,MaxTextExtent,"%.20g",
+ (void) FormatLocaleString(value,MagickPathExtent,"%.20g",
(double) msl_info->image[n]->rows);
(void) SetImageProperty(msl_info->attributes[n],key,value,
exception);
{
if (LocaleCompare(keyword,"width") == 0)
{
- (void) FormatLocaleString(value,MaxTextExtent,"%.20g",
+ (void) FormatLocaleString(value,MagickPathExtent,"%.20g",
(double) msl_info->image[n]->columns);
(void) SetImageProperty(msl_info->attributes[n],key,value,
exception);
*next_image;
(void) CopyMagickString(msl_info->image_info[n]->filename,
- "xc:",MaxTextExtent);
+ "xc:",MagickPathExtent);
(void) ConcatenateMagickString(msl_info->image_info[n]->
- filename,value,MaxTextExtent);
+ filename,value,MagickPathExtent);
next_image=ReadImage(msl_info->image_info[n],exception);
CatchException(exception);
if (next_image == (Image *) NULL)
{
keyword=(const char *) attributes[i++];
CloneString(&value,(const char *) attributes[i]);
- (void) CopyMagickString(key,value,MaxTextExtent);
+ (void) CopyMagickString(key,value,MagickPathExtent);
switch (*keyword)
{
case 'B':
if (LocaleCompare((const char *) tag,"modulate") == 0)
{
char
- modulate[MaxTextExtent];
+ modulate[MagickPathExtent];
/*
Modulate image.
}
}
}
- (void) FormatLocaleString(modulate,MaxTextExtent,"%g,%g,%g",
+ (void) FormatLocaleString(modulate,MagickPathExtent,"%g,%g,%g",
geometry_info.rho,geometry_info.sigma,geometry_info.xi);
(void) ModulateImage(msl_info->image[n],modulate,
msl_info->exception);
if (profile_image == (Image *) NULL)
{
char
- name[MaxTextExtent],
- filename[MaxTextExtent];
+ name[MagickPathExtent],
+ filename[MagickPathExtent];
register char
*p;
StringInfo
*profile;
- (void) CopyMagickString(filename,keyword,MaxTextExtent);
- (void) CopyMagickString(name,keyword,MaxTextExtent);
+ (void) CopyMagickString(filename,keyword,MagickPathExtent);
+ (void) CopyMagickString(name,keyword,MagickPathExtent);
for (p=filename; *p != '\0'; p++)
if ((*p == ':') && (IsPathDirectory(keyword) < 0) &&
(IsPathAccessible(keyword) == MagickFalse))
if (LocaleCompare((const char *) tag,"query-font-metrics") == 0)
{
char
- text[MaxTextExtent];
+ text[MagickPathExtent];
MagickBooleanType
status;
}
}
}
- (void) FormatLocaleString(text,MaxTextExtent,
+ (void) FormatLocaleString(text,MagickPathExtent,
"%.20gx%.20g%+.20g%+.20g",(double) geometry.width,(double)
geometry.height,(double) geometry.x,(double) geometry.y);
CloneString(&draw_info->geometry,text);
Image
*image;
+ if (value == (char *) NULL)
+ break;
(void) CopyMagickString(msl_info->image_info[n]->filename,
- value,MaxTextExtent);
+ value,MagickPathExtent);
image=ReadImage(msl_info->image_info[n],exception);
CatchException(exception);
if (image == (Image *) NULL)
}
if (LocaleCompare((const char *) tag,"resize") == 0)
{
- FilterTypes
+ FilterType
filter;
Image
if (option < 0)
ThrowMSLException(OptionError,"UnrecognizedNoiseType",
value);
- filter=(FilterTypes) option;
+ filter=(FilterType) option;
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",
exception);
if (LocaleCompare(property,value) == 0)
{
- SetImageMask(msl_info->image[n],msl_info->image[j],
- exception);
+ SetImageMask(msl_info->image[n],ReadPixelMask,
+ msl_info->image[j],exception);
break;
}
}
exception);
if (LocaleCompare(property,value) == 0)
{
- SetImageMask(msl_info->image[n],msl_info->image[j],
- exception);
+ SetImageMask(msl_info->image[n],ReadPixelMask,
+ msl_info->image[j],exception);
break;
}
}
if (LocaleCompare(keyword, "page") == 0)
{
char
- page[MaxTextExtent];
+ page[MagickPathExtent];
const char
*image_option;
if (image_option != (const char *) NULL)
flags=ParseAbsoluteGeometry(image_option,&geometry);
flags=ParseAbsoluteGeometry(value,&geometry);
- (void) FormatLocaleString(page,MaxTextExtent,"%.20gx%.20g",
+ (void) FormatLocaleString(page,MagickPathExtent,"%.20gx%.20g",
(double) geometry.width,(double) geometry.height);
if (((flags & XValue) != 0) || ((flags & YValue) != 0))
- (void) FormatLocaleString(page,MaxTextExtent,
+ (void) FormatLocaleString(page,MagickPathExtent,
"%.20gx%.20g%+.20g%+.20g",(double) geometry.width,
(double) geometry.height,(double) geometry.x,(double)
geometry.y);
}
}
}
- spread_image=SpreadImage(msl_info->image[n],geometry_info.rho,
- msl_info->image[n]->interpolate,msl_info->exception);
+ spread_image=SpreadImage(msl_info->image[n],
+ msl_info->image[n]->interpolate,geometry_info.rho,
+ msl_info->exception);
if (spread_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
else if (LocaleCompare((const char *) tag,"stegano") == 0)
{
Image *
- watermark = (Image*)NULL;
+ watermark = (Image*) NULL;
if (msl_info->image[n] == (Image *) NULL)
{
else if (LocaleCompare((const char *) tag,"stereo") == 0)
{
Image *
- stereoImage = (Image*)NULL;
+ stereoImage = (Image*) NULL;
if (msl_info->image[n] == (Image *) NULL)
{
if (LocaleCompare(keyword,"filename") == 0)
{
(void) CopyMagickString(msl_info->image[n]->filename,value,
- MaxTextExtent);
+ MagickPathExtent);
break;
}
(void) SetMSLAttributes(msl_info,keyword,value);
/* process */
{
+ *msl_info->image_info[n]->magick='\0';
(void) WriteImage(msl_info->image_info[n], msl_info->image[n],
msl_info->exception);
break;
msl_info=(MSLInfo *) context;
if (msl_info->content != (char *) NULL)
msl_info->content=(char *) ResizeQuantumMemory(msl_info->content,
- strlen(msl_info->content)+length+MaxTextExtent,
+ strlen(msl_info->content)+length+MagickPathExtent,
sizeof(*msl_info->content));
else
{
msl_info->content=(char *) NULL;
- if (~length >= (MaxTextExtent-1))
- msl_info->content=(char *) AcquireQuantumMemory(length+MaxTextExtent,
+ if (~length >= (MagickPathExtent-1))
+ msl_info->content=(char *) AcquireQuantumMemory(length+MagickPathExtent,
sizeof(*msl_info->content));
if (msl_info->content != (char *) NULL)
*msl_info->content='\0';
{
char
*message,
- reason[MaxTextExtent];
+ reason[MagickPathExtent];
MSLInfo
*msl_info;
#if !defined(MAGICKCORE_HAVE_VSNPRINTF)
(void) vsprintf(reason,format,operands);
#else
- (void) vsnprintf(reason,MaxTextExtent,format,operands);
+ (void) vsnprintf(reason,MagickPathExtent,format,operands);
#endif
message=GetExceptionMessage(errno);
ThrowMSLException(CoderError,reason,message);
static void MSLError(void *context,const char *format,...)
{
char
- reason[MaxTextExtent];
+ reason[MagickPathExtent];
MSLInfo
*msl_info;
#if !defined(MAGICKCORE_HAVE_VSNPRINTF)
(void) vsprintf(reason,format,operands);
#else
- (void) vsnprintf(reason,MaxTextExtent,format,operands);
+ (void) vsnprintf(reason,MagickPathExtent,format,operands);
#endif
ThrowMSLException(DelegateFatalError,reason,"SAX error");
va_end(operands);
Image **image,ExceptionInfo *exception)
{
char
- message[MaxTextExtent];
+ message[MagickPathExtent];
Image
*msl_image;
Open image file.
*/
assert(image_info != (const ImageInfo *) NULL);
- assert(image_info->signature == MagickSignature);
+ assert(image_info->signature == MagickCoreSignature);
if (image_info->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
Open image file.
*/
assert(image_info != (const ImageInfo *) NULL);
- assert(image_info->signature == MagickSignature);
+ assert(image_info->signature == MagickCoreSignature);
if (image_info->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
assert(exception != (ExceptionInfo *) NULL);
- assert(exception->signature == MagickSignature);
+ assert(exception->signature == MagickCoreSignature);
image=(Image *) NULL;
(void) ProcessMSLScript(image_info,&image,exception);
return(GetFirstImageInList(image));
#if defined(MAGICKCORE_XML_DELEGATE)
xmlInitParser();
#endif
- entry=SetMagickInfo("MSL");
+ entry=AcquireMagickInfo("MSL","MSL","Magick Scripting Language");
#if defined(MAGICKCORE_XML_DELEGATE)
entry->decoder=(DecodeImageHandler *) ReadMSLImage;
entry->encoder=(EncodeImageHandler *) WriteMSLImage;
#endif
- entry->description=ConstantString("Magick Scripting Language");
- entry->module=ConstantString("MSL");
+ entry->format_type=ImplicitFormatType;
(void) RegisterMagickInfo(entry);
return(MagickImageCoderSignature);
}
exception);
break;
}
+ if (LocaleCompare(keyword,"alpha-color") == 0)
+ {
+ (void) QueryColorCompliance(value,AllCompliance,
+ &image_info->alpha_color,exception);
+ break;
+ }
if (LocaleCompare(keyword,"antialias") == 0)
{
ssize_t
}
if (LocaleCompare(keyword,"filename") == 0)
{
- (void) CopyMagickString(image_info->filename,value,MaxTextExtent);
+ (void) CopyMagickString(image_info->filename,value,MagickPathExtent);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
{
if (LocaleCompare(keyword,"magick") == 0)
{
- (void) CopyMagickString(image_info->magick,value,MaxTextExtent);
- break;
- }
- if (LocaleCompare(keyword,"mattecolor") == 0)
- {
- (void) QueryColorCompliance(value,AllCompliance,
- &image_info->matte_color,exception);
+ (void) CopyMagickString(image_info->magick,value,MagickPathExtent);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
ExceptionInfo *exception)
{
assert(image_info != (const ImageInfo *) NULL);
- assert(image_info->signature == MagickSignature);
+ assert(image_info->signature == MagickCoreSignature);
assert(image != (Image *) NULL);
- assert(image->signature == MagickSignature);
+ assert(image->signature == MagickCoreSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
(void) ReferenceImage(image);