diff --git a/coders/braille.c b/coders/braille.c
index f4a5a13..366c55b 100644
--- a/coders/braille.c
+++ b/coders/braille.c
@@ -223,7 +223,7 @@
return(status);
if (!iso_11548_1)
{
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
{
(void) FormatLocaleString(buffer,MaxTextExtent,"Title: %s\n", value);
diff --git a/coders/caption.c b/coders/caption.c
index b12136d..ace8255 100644
--- a/coders/caption.c
+++ b/coders/caption.c
@@ -134,9 +134,9 @@
*/
property=InterpretImageProperties(image_info,image,image_info->filename,
exception);
- (void) SetImageProperty(image,"caption",property);
+ (void) SetImageProperty(image,"caption",property,exception);
property=DestroyString(property);
- caption=ConstantString(GetImageProperty(image,"caption"));
+ caption=ConstantString(GetImageProperty(image,"caption",exception));
draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);
draw_info->text=ConstantString(caption);
gravity=GetImageOption(image_info,"gravity");
diff --git a/coders/cin.c b/coders/cin.c
index 5a2202f..593b527 100644
--- a/coders/cin.c
+++ b/coders/cin.c
@@ -455,16 +455,19 @@
offset+=4;
offset+=ReadBlob(image,sizeof(cin.file.version),(unsigned char *)
cin.file.version);
- (void) SetImageProperty(image,"dpx:file.version",cin.file.version);
+ (void) SetImageProperty(image,"dpx:file.version",cin.file.version,exception);
offset+=ReadBlob(image,sizeof(cin.file.filename),(unsigned char *)
cin.file.filename);
- (void) SetImageProperty(image,"dpx:file.filename",cin.file.filename);
+ (void) SetImageProperty(image,"dpx:file.filename",cin.file.filename,
+ exception);
offset+=ReadBlob(image,sizeof(cin.file.create_date),(unsigned char *)
cin.file.create_date);
- (void) SetImageProperty(image,"dpx:file.create_date",cin.file.create_date);
+ (void) SetImageProperty(image,"dpx:file.create_date",cin.file.create_date,
+ exception);
offset+=ReadBlob(image,sizeof(cin.file.create_time),(unsigned char *)
cin.file.create_time);
- (void) SetImageProperty(image,"dpx:file.create_time",cin.file.create_time);
+ (void) SetImageProperty(image,"dpx:file.create_time",cin.file.create_time,
+ exception);
offset+=ReadBlob(image,sizeof(cin.file.reserve),(unsigned char *)
cin.file.reserve);
/*
@@ -548,7 +551,7 @@
image->chromaticity.blue_primary.y=cin.image.blue_primary_chromaticity[1];
offset+=ReadBlob(image,sizeof(cin.image.label),(unsigned char *)
cin.image.label);
- (void) SetImageProperty(image,"dpx:image.label",cin.image.label);
+ (void) SetImageProperty(image,"dpx:image.label",cin.image.label,exception);
offset+=ReadBlob(image,sizeof(cin.image.reserve),(unsigned char *)
cin.image.reserve);
/*
@@ -584,26 +587,27 @@
offset+=ReadBlob(image,sizeof(cin.origination.filename),(unsigned char *)
cin.origination.filename);
(void) SetImageProperty(image,"dpx:origination.filename",
- cin.origination.filename);
+ cin.origination.filename,exception);
offset+=ReadBlob(image,sizeof(cin.origination.create_date),(unsigned char *)
cin.origination.create_date);
(void) SetImageProperty(image,"dpx:origination.create_date",
- cin.origination.create_date);
+ cin.origination.create_date,exception);
offset+=ReadBlob(image,sizeof(cin.origination.create_time),(unsigned char *)
cin.origination.create_time);
(void) SetImageProperty(image,"dpx:origination.create_time",
- cin.origination.create_time);
+ cin.origination.create_time,exception);
offset+=ReadBlob(image,sizeof(cin.origination.device),(unsigned char *)
cin.origination.device);
(void) SetImageProperty(image,"dpx:origination.device",
- cin.origination.device);
+ cin.origination.device,exception);
offset+=ReadBlob(image,sizeof(cin.origination.model),(unsigned char *)
cin.origination.model);
- (void) SetImageProperty(image,"dpx:origination.model",cin.origination.model);
+ (void) SetImageProperty(image,"dpx:origination.model",cin.origination.model,
+ exception);
offset+=ReadBlob(image,sizeof(cin.origination.serial),(unsigned char *)
cin.origination.serial);
(void) SetImageProperty(image,"dpx:origination.serial",
- cin.origination.serial);
+ cin.origination.serial,exception);
cin.origination.x_pitch=ReadBlobFloat(image);
offset+=4;
cin.origination.y_pitch=ReadBlobFloat(image);
@@ -649,7 +653,8 @@
offset+=4;
offset+=ReadBlob(image,sizeof(cin.film.format),(unsigned char *)
cin.film.format);
- (void) SetImageProperty(image,"dpx:film.format",cin.film.format);
+ (void) SetImageProperty(image,"dpx:film.format",cin.film.format,
+ exception);
cin.film.frame_position=ReadBlobLong(image);
offset+=4;
if (cin.film.frame_position != ~0UL)
@@ -662,10 +667,12 @@
cin.film.frame_rate);
offset+=ReadBlob(image,sizeof(cin.film.frame_id),(unsigned char *)
cin.film.frame_id);
- (void) SetImageProperty(image,"dpx:film.frame_id",cin.film.frame_id);
+ (void) SetImageProperty(image,"dpx:film.frame_id",cin.film.frame_id,
+ exception);
offset+=ReadBlob(image,sizeof(cin.film.slate_info),(unsigned char *)
cin.film.slate_info);
- (void) SetImageProperty(image,"dpx:film.slate_info",cin.film.slate_info);
+ (void) SetImageProperty(image,"dpx:film.slate_info",cin.film.slate_info,
+ exception);
offset+=ReadBlob(image,sizeof(cin.film.reserve),(unsigned char *)
cin.film.reserve);
}
@@ -682,7 +689,7 @@
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
offset+=ReadBlob(image,GetStringInfoLength(profile),
GetStringInfoDatum(profile));
- (void) SetImageProfile(image,"dpx:user.data",profile);
+ (void) SetImageProfile(image,"dpx:user.data",profile,exception);
profile=DestroyStringInfo(profile);
}
for ( ; offset < (MagickOffsetType) cin.file.image_offset; offset++)
@@ -833,7 +840,7 @@
*/
static inline const char *GetCINProperty(const ImageInfo *image_info,
- const Image *image,const char *property)
+ const Image *image,const char *property,ExceptionInfo *exception)
{
const char
*value;
@@ -841,7 +848,7 @@
value=GetImageOption(image_info,property);
if (value != (const char *) NULL)
return(value);
- return(GetImageProperty(image,property));
+ return(GetImageProperty(image,property,exception));
}
static MagickBooleanType WriteCINImage(const ImageInfo *image_info,Image *image,
@@ -932,7 +939,7 @@
(void) CopyMagickString(cin.file.version,"V4.5",sizeof(cin.file.version));
offset+=WriteBlob(image,sizeof(cin.file.version),(unsigned char *)
cin.file.version);
- value=GetCINProperty(image_info,image,"dpx:file.filename");
+ value=GetCINProperty(image_info,image,"dpx:file.filename",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(cin.file.filename,value,sizeof(cin.file.filename));
else
@@ -995,7 +1002,7 @@
offset+=WriteBlobFloat(image,image->chromaticity.green_primary.y);
offset+=WriteBlobFloat(image,image->chromaticity.blue_primary.x);
offset+=WriteBlobFloat(image,image->chromaticity.blue_primary.y);
- value=GetCINProperty(image_info,image,"dpx:image.label");
+ value=GetCINProperty(image_info,image,"dpx:image.label",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(cin.image.label,value,sizeof(cin.image.label));
offset+=WriteBlob(image,sizeof(cin.image.label),(unsigned char *)
@@ -1023,16 +1030,16 @@
Write origination information.
*/
cin.origination.x_offset=0UL;
- value=GetCINProperty(image_info,image,"dpx:origination.x_offset");
+ value=GetCINProperty(image_info,image,"dpx:origination.x_offset",exception);
if (value != (const char *) NULL)
cin.origination.x_offset=(ssize_t) StringToLong(value);
offset+=WriteBlobLong(image,(unsigned int) cin.origination.x_offset);
cin.origination.y_offset=0UL;
- value=GetCINProperty(image_info,image,"dpx:origination.y_offset");
+ value=GetCINProperty(image_info,image,"dpx:origination.y_offset",exception);
if (value != (const char *) NULL)
cin.origination.y_offset=(ssize_t) StringToLong(value);
offset+=WriteBlobLong(image,(unsigned int) cin.origination.y_offset);
- value=GetCINProperty(image_info,image,"dpx:origination.filename");
+ value=GetCINProperty(image_info,image,"dpx:origination.filename",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(cin.origination.filename,value,
sizeof(cin.origination.filename));
@@ -1050,31 +1057,31 @@
sizeof(cin.origination.create_time),"%H:%M:%S%Z",&local_time);
offset+=WriteBlob(image,sizeof(cin.origination.create_time),(unsigned char *)
cin.origination.create_time);
- value=GetCINProperty(image_info,image,"dpx:origination.device");
+ value=GetCINProperty(image_info,image,"dpx:origination.device",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(cin.origination.device,value,
sizeof(cin.origination.device));
offset+=WriteBlob(image,sizeof(cin.origination.device),(unsigned char *)
cin.origination.device);
- value=GetCINProperty(image_info,image,"dpx:origination.model");
+ value=GetCINProperty(image_info,image,"dpx:origination.model",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(cin.origination.model,value,
sizeof(cin.origination.model));
offset+=WriteBlob(image,sizeof(cin.origination.model),(unsigned char *)
cin.origination.model);
- value=GetCINProperty(image_info,image,"dpx:origination.serial");
+ value=GetCINProperty(image_info,image,"dpx:origination.serial",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(cin.origination.serial,value,
sizeof(cin.origination.serial));
offset+=WriteBlob(image,sizeof(cin.origination.serial),(unsigned char *)
cin.origination.serial);
cin.origination.x_pitch=0.0f;
- value=GetCINProperty(image_info,image,"dpx:origination.x_pitch");
+ value=GetCINProperty(image_info,image,"dpx:origination.x_pitch",exception);
if (value != (const char *) NULL)
cin.origination.x_pitch=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,cin.origination.x_pitch);
cin.origination.y_pitch=0.0f;
- value=GetCINProperty(image_info,image,"dpx:origination.y_pitch");
+ value=GetCINProperty(image_info,image,"dpx:origination.y_pitch",exception);
if (value != (const char *) NULL)
cin.origination.y_pitch=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,cin.origination.y_pitch);
@@ -1086,52 +1093,52 @@
Image film information.
*/
cin.film.id=0;
- value=GetCINProperty(image_info,image,"dpx:film.id");
+ value=GetCINProperty(image_info,image,"dpx:film.id",exception);
if (value != (const char *) NULL)
cin.film.id=(char) StringToLong(value);
offset+=WriteBlobByte(image,(unsigned char) cin.film.id);
cin.film.type=0;
- value=GetCINProperty(image_info,image,"dpx:film.type");
+ value=GetCINProperty(image_info,image,"dpx:film.type",exception);
if (value != (const char *) NULL)
cin.film.type=(char) StringToLong(value);
offset+=WriteBlobByte(image,(unsigned char) cin.film.type);
cin.film.offset=0;
- value=GetCINProperty(image_info,image,"dpx:film.offset");
+ value=GetCINProperty(image_info,image,"dpx:film.offset",exception);
if (value != (const char *) NULL)
cin.film.offset=(char) StringToLong(value);
offset+=WriteBlobByte(image,(unsigned char) cin.film.offset);
offset+=WriteBlobByte(image,(unsigned char) cin.film.reserve1);
cin.film.prefix=0UL;
- value=GetCINProperty(image_info,image,"dpx:film.prefix");
+ value=GetCINProperty(image_info,image,"dpx:film.prefix",exception);
if (value != (const char *) NULL)
cin.film.prefix=StringToUnsignedLong(value);
offset+=WriteBlobLong(image,(unsigned int) cin.film.prefix);
cin.film.count=0UL;
- value=GetCINProperty(image_info,image,"dpx:film.count");
+ value=GetCINProperty(image_info,image,"dpx:film.count",exception);
if (value != (const char *) NULL)
cin.film.count=StringToUnsignedLong(value);
offset+=WriteBlobLong(image,(unsigned int) cin.film.count);
- value=GetCINProperty(image_info,image,"dpx:film.format");
+ value=GetCINProperty(image_info,image,"dpx:film.format",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(cin.film.format,value,sizeof(cin.film.format));
offset+=WriteBlob(image,sizeof(cin.film.format),(unsigned char *)
cin.film.format);
cin.film.frame_position=0UL;
- value=GetCINProperty(image_info,image,"dpx:film.frame_position");
+ value=GetCINProperty(image_info,image,"dpx:film.frame_position",exception);
if (value != (const char *) NULL)
cin.film.frame_position=StringToUnsignedLong(value);
offset+=WriteBlobLong(image,(unsigned int) cin.film.frame_position);
cin.film.frame_rate=0.0f;
- value=GetCINProperty(image_info,image,"dpx:film.frame_rate");
+ value=GetCINProperty(image_info,image,"dpx:film.frame_rate",exception);
if (value != (const char *) NULL)
cin.film.frame_rate=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,cin.film.frame_rate);
- value=GetCINProperty(image_info,image,"dpx:film.frame_id");
+ value=GetCINProperty(image_info,image,"dpx:film.frame_id",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(cin.film.frame_id,value,sizeof(cin.film.frame_id));
offset+=WriteBlob(image,sizeof(cin.film.frame_id),(unsigned char *)
cin.film.frame_id);
- value=GetCINProperty(image_info,image,"dpx:film.slate_info");
+ value=GetCINProperty(image_info,image,"dpx:film.slate_info",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(cin.film.slate_info,value,
sizeof(cin.film.slate_info));
diff --git a/coders/cip.c b/coders/cip.c
index 3b9293b..2b8ea20 100644
--- a/coders/cip.c
+++ b/coders/cip.c
@@ -207,7 +207,7 @@
if (status == MagickFalse)
return(status);
(void) WriteBlobString(image,"<CiscoIPPhoneImage>\n");
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
(void) FormatLocaleString(buffer,MaxTextExtent,"<Title>%s</Title>\n",value);
else
diff --git a/coders/dcm.c b/coders/dcm.c
index 2a42e89..58e1355 100644
--- a/coders/dcm.c
+++ b/coders/dcm.c
@@ -3412,7 +3412,7 @@
if ((i == (ssize_t) length) || (length > 4))
{
(void) SubstituteString(&attribute," ","");
- (void) SetImageProperty(image,attribute,(char *) data);
+ (void) SetImageProperty(image,attribute,(char *) data,exception);
}
attribute=DestroyString(attribute);
}
@@ -3568,7 +3568,7 @@
while (property != (const char *) NULL)
{
(void) SetImageProperty(jpeg_image,property,
- GetImageProperty(image,property));
+ GetImageProperty(image,property,exception),exception);
property=GetNextImageProperty(image);
}
AppendImageToList(&images,jpeg_image);
diff --git a/coders/dpx.c b/coders/dpx.c
index 014451b..2b72a19 100644
--- a/coders/dpx.c
+++ b/coders/dpx.c
@@ -889,11 +889,11 @@
dpx.television.time_code=(unsigned int) ReadBlobLong(image);
offset+=4;
TimeCodeToString(dpx.television.time_code,value);
- (void) SetImageProperty(image,"dpx:television.time.code",value);
+ (void) SetImageProperty(image,"dpx:television.time.code",value,exception);
dpx.television.user_bits=(unsigned int) ReadBlobLong(image);
offset+=4;
TimeCodeToString(dpx.television.user_bits,value);
- (void) SetImageProperty(image,"dpx:television.user.bits",value);
+ (void) SetImageProperty(image,"dpx:television.user.bits",value,exception);
dpx.television.interlace=(unsigned char) ReadBlobByte(image);
offset++;
if (dpx.television.interlace != 0)
@@ -988,7 +988,7 @@
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
offset+=ReadBlob(image,GetStringInfoLength(profile),
GetStringInfoDatum(profile));
- (void) SetImageProfile(image,"dpx",profile);
+ (void) SetImageProfile(image,"dpx",profile,exception);
profile=DestroyStringInfo(profile);
}
}
@@ -1238,7 +1238,7 @@
*/
static inline const char *GetDPXProperty(const ImageInfo *image_info,
- const Image *image,const char *property)
+ const Image *image,const char *property,ExceptionInfo *exception)
{
const char
*value;
@@ -1246,7 +1246,7 @@
value=GetImageOption(image_info,property);
if (value != (const char *) NULL)
return(value);
- return(GetImageProperty(image,property));
+ return(GetImageProperty(image,property,exception));
}
static unsigned int StringToTimeCode(const char *key)
@@ -1402,7 +1402,7 @@
dpx.file.user_size=(((dpx.file.user_size+0x2000-1)/0x2000)*0x2000);
}
offset+=WriteBlobLong(image,dpx.file.user_size);
- value=GetDPXProperty(image_info,image,"dpx:file.filename");
+ value=GetDPXProperty(image_info,image,"dpx:file.filename",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.file.filename,value,sizeof(dpx.file.filename));
offset+=WriteBlob(image,sizeof(dpx.file.filename),(unsigned char *)
@@ -1414,20 +1414,19 @@
dpx.file.timestamp);
(void) strncpy(dpx.file.creator,GetMagickVersion((size_t *) NULL),
sizeof(dpx.file.creator));
- value=GetDPXProperty(image_info,image,"dpx:file.creator");
+ value=GetDPXProperty(image_info,image,"dpx:file.creator",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.file.creator,value,sizeof(dpx.file.creator));
offset+=WriteBlob(image,sizeof(dpx.file.creator),(unsigned char *)
dpx.file.creator);
- value=GetDPXProperty(image_info,image,"dpx:file.project");
+ value=GetDPXProperty(image_info,image,"dpx:file.project",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.file.project,value,sizeof(dpx.file.project));
offset+=WriteBlob(image,sizeof(dpx.file.project),(unsigned char *)
dpx.file.project);
- value=GetDPXProperty(image_info,image,"dpx:file.copyright");
+ value=GetDPXProperty(image_info,image,"dpx:file.copyright",exception);
if (value != (const char *) NULL)
- (void) strncpy(dpx.file.copyright,value,
- sizeof(dpx.file.copyright));
+ (void) strncpy(dpx.file.copyright,value,sizeof(dpx.file.copyright));
offset+=WriteBlob(image,sizeof(dpx.file.copyright),(unsigned char *)
dpx.file.copyright);
dpx.file.encrypt_key=(~0U);
@@ -1530,36 +1529,36 @@
(void) DeleteImageProperty(image,"dpx:orientation.y_size");
}
dpx.orientation.x_offset=0U;
- value=GetDPXProperty(image_info,image,"dpx:orientation.x_offset");
+ value=GetDPXProperty(image_info,image,"dpx:orientation.x_offset",exception);
if (value != (const char *) NULL)
dpx.orientation.x_offset=(unsigned int) StringToUnsignedLong(value);
offset+=WriteBlobLong(image,dpx.orientation.x_offset);
dpx.orientation.y_offset=0U;
- value=GetDPXProperty(image_info,image,"dpx:orientation.y_offset");
+ value=GetDPXProperty(image_info,image,"dpx:orientation.y_offset",exception);
if (value != (const char *) NULL)
dpx.orientation.y_offset=(unsigned int) StringToUnsignedLong(value);
offset+=WriteBlobLong(image,dpx.orientation.y_offset);
dpx.orientation.x_center=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:orientation.x_center");
+ value=GetDPXProperty(image_info,image,"dpx:orientation.x_center",exception);
if (value != (const char *) NULL)
dpx.orientation.x_center=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,dpx.orientation.x_center);
dpx.orientation.y_center=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:orientation.y_center");
+ value=GetDPXProperty(image_info,image,"dpx:orientation.y_center",exception);
if (value != (const char *) NULL)
dpx.orientation.y_center=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,dpx.orientation.y_center);
dpx.orientation.x_size=0U;
- value=GetDPXProperty(image_info,image,"dpx:orientation.x_size");
+ value=GetDPXProperty(image_info,image,"dpx:orientation.x_size",exception);
if (value != (const char *) NULL)
dpx.orientation.x_size=(unsigned int) StringToUnsignedLong(value);
offset+=WriteBlobLong(image,dpx.orientation.x_size);
dpx.orientation.y_size=0U;
- value=GetDPXProperty(image_info,image,"dpx:orientation.y_size");
+ value=GetDPXProperty(image_info,image,"dpx:orientation.y_size",exception);
if (value != (const char *) NULL)
dpx.orientation.y_size=(unsigned int) StringToUnsignedLong(value);
offset+=WriteBlobLong(image,dpx.orientation.y_size);
- value=GetDPXProperty(image_info,image,"dpx:orientation.filename");
+ value=GetDPXProperty(image_info,image,"dpx:orientation.filename",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.orientation.filename,value,
sizeof(dpx.orientation.filename));
@@ -1567,19 +1566,19 @@
dpx.orientation.filename);
offset+=WriteBlob(image,sizeof(dpx.orientation.timestamp),(unsigned char *)
dpx.orientation.timestamp);
- value=GetDPXProperty(image_info,image,"dpx:orientation.device");
+ value=GetDPXProperty(image_info,image,"dpx:orientation.device",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.orientation.device,value,sizeof(dpx.orientation.device));
offset+=WriteBlob(image,sizeof(dpx.orientation.device),(unsigned char *)
dpx.orientation.device);
- value=GetDPXProperty(image_info,image,"dpx:orientation.serial");
+ value=GetDPXProperty(image_info,image,"dpx:orientation.serial",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.orientation.serial,value,sizeof(dpx.orientation.serial));
offset+=WriteBlob(image,sizeof(dpx.orientation.serial),(unsigned char *)
dpx.orientation.serial);
for (i=0; i < 4; i++)
dpx.orientation.border[i]=0;
- value=GetDPXProperty(image_info,image,"dpx:orientation.border");
+ value=GetDPXProperty(image_info,image,"dpx:orientation.border",exception);
if (value != (const char *) NULL)
{
flags=ParseGeometry(value,&geometry_info);
@@ -1594,7 +1593,8 @@
offset+=WriteBlobShort(image,dpx.orientation.border[i]);
for (i=0; i < 2; i++)
dpx.orientation.aspect_ratio[i]=0U;
- value=GetDPXProperty(image_info,image,"dpx:orientation.aspect_ratio");
+ value=GetDPXProperty(image_info,image,"dpx:orientation.aspect_ratio",
+ exception);
if (value != (const char *) NULL)
{
flags=ParseGeometry(value,&geometry_info);
@@ -1611,72 +1611,72 @@
Write film header.
*/
*dpx.film.id='\0';
- value=GetDPXProperty(image_info,image,"dpx:film.id");
+ value=GetDPXProperty(image_info,image,"dpx:film.id",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.film.id,value,sizeof(dpx.film.id));
offset+=WriteBlob(image,sizeof(dpx.film.id),(unsigned char *) dpx.film.id);
*dpx.film.type='\0';
- value=GetDPXProperty(image_info,image,"dpx:film.type");
+ value=GetDPXProperty(image_info,image,"dpx:film.type",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.film.type,value,sizeof(dpx.film.type));
offset+=WriteBlob(image,sizeof(dpx.film.type),(unsigned char *)
dpx.film.type);
*dpx.film.offset='\0';
- value=GetDPXProperty(image_info,image,"dpx:film.offset");
+ value=GetDPXProperty(image_info,image,"dpx:film.offset",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.film.offset,value,sizeof(dpx.film.offset));
offset+=WriteBlob(image,sizeof(dpx.film.offset),(unsigned char *)
dpx.film.offset);
*dpx.film.prefix='\0';
- value=GetDPXProperty(image_info,image,"dpx:film.prefix");
+ value=GetDPXProperty(image_info,image,"dpx:film.prefix",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.film.prefix,value,sizeof(dpx.film.prefix));
offset+=WriteBlob(image,sizeof(dpx.film.prefix),(unsigned char *)
dpx.film.prefix);
*dpx.film.count='\0';
- value=GetDPXProperty(image_info,image,"dpx:film.count");
+ value=GetDPXProperty(image_info,image,"dpx:film.count",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.film.count,value,sizeof(dpx.film.count));
offset+=WriteBlob(image,sizeof(dpx.film.count),(unsigned char *)
dpx.film.count);
*dpx.film.format='\0';
- value=GetDPXProperty(image_info,image,"dpx:film.format");
+ value=GetDPXProperty(image_info,image,"dpx:film.format",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.film.format,value,sizeof(dpx.film.format));
offset+=WriteBlob(image,sizeof(dpx.film.format),(unsigned char *)
dpx.film.format);
dpx.film.frame_position=0U;
- value=GetDPXProperty(image_info,image,"dpx:film.frame_position");
+ value=GetDPXProperty(image_info,image,"dpx:film.frame_position",exception);
if (value != (const char *) NULL)
dpx.film.frame_position=(unsigned int) StringToUnsignedLong(value);
offset+=WriteBlobLong(image,dpx.film.frame_position);
dpx.film.sequence_extent=0U;
- value=GetDPXProperty(image_info,image,"dpx:film.sequence_extent");
+ value=GetDPXProperty(image_info,image,"dpx:film.sequence_extent",exception);
if (value != (const char *) NULL)
dpx.film.sequence_extent=(unsigned int) StringToUnsignedLong(value);
offset+=WriteBlobLong(image,dpx.film.sequence_extent);
dpx.film.held_count=0U;
- value=GetDPXProperty(image_info,image,"dpx:film.held_count");
+ value=GetDPXProperty(image_info,image,"dpx:film.held_count",exception);
if (value != (const char *) NULL)
dpx.film.held_count=(unsigned int) StringToUnsignedLong(value);
offset+=WriteBlobLong(image,dpx.film.held_count);
dpx.film.frame_rate=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:film.frame_rate");
+ value=GetDPXProperty(image_info,image,"dpx:film.frame_rate",exception);
if (value != (const char *) NULL)
dpx.film.frame_rate=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,dpx.film.frame_rate);
dpx.film.shutter_angle=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:film.shutter_angle");
+ value=GetDPXProperty(image_info,image,"dpx:film.shutter_angle",exception);
if (value != (const char *) NULL)
dpx.film.shutter_angle=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,dpx.film.shutter_angle);
*dpx.film.frame_id='\0';
- value=GetDPXProperty(image_info,image,"dpx:film.frame_id");
+ value=GetDPXProperty(image_info,image,"dpx:film.frame_id",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.film.frame_id,value,sizeof(dpx.film.frame_id));
offset+=WriteBlob(image,sizeof(dpx.film.frame_id),(unsigned char *)
dpx.film.frame_id);
- value=GetDPXProperty(image_info,image,"dpx:film.slate");
+ value=GetDPXProperty(image_info,image,"dpx:film.slate",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.film.slate,value,sizeof(dpx.film.slate));
offset+=WriteBlob(image,sizeof(dpx.film.slate),(unsigned char *)
@@ -1686,82 +1686,85 @@
/*
Write television header.
*/
- value=GetDPXProperty(image_info,image,"dpx:television.time.code");
+ value=GetDPXProperty(image_info,image,"dpx:television.time.code",exception);
if (value != (const char *) NULL)
dpx.television.time_code=StringToTimeCode(value);
offset+=WriteBlobLong(image,dpx.television.time_code);
- value=GetDPXProperty(image_info,image,"dpx:television.user.bits");
+ value=GetDPXProperty(image_info,image,"dpx:television.user.bits",exception);
if (value != (const char *) NULL)
dpx.television.user_bits=StringToTimeCode(value);
offset+=WriteBlobLong(image,dpx.television.user_bits);
- value=GetDPXProperty(image_info,image,"dpx:television.interlace");
+ value=GetDPXProperty(image_info,image,"dpx:television.interlace",exception);
if (value != (const char *) NULL)
dpx.television.interlace=(unsigned char) StringToLong(value);
offset+=WriteBlobByte(image,dpx.television.interlace);
- value=GetDPXProperty(image_info,image,"dpx:television.field_number");
+ value=GetDPXProperty(image_info,image,"dpx:television.field_number",
+ exception);
if (value != (const char *) NULL)
dpx.television.field_number=(unsigned char) StringToLong(value);
offset+=WriteBlobByte(image,dpx.television.field_number);
dpx.television.video_signal=0;
- value=GetDPXProperty(image_info,image,"dpx:television.video_signal");
+ value=GetDPXProperty(image_info,image,"dpx:television.video_signal",exception);
if (value != (const char *) NULL)
dpx.television.video_signal=(unsigned char) StringToLong(value);
offset+=WriteBlobByte(image,dpx.television.video_signal);
dpx.television.padding=0;
- value=GetDPXProperty(image_info,image,"dpx:television.padding");
+ value=GetDPXProperty(image_info,image,"dpx:television.padding",exception);
if (value != (const char *) NULL)
dpx.television.padding=(unsigned char) StringToLong(value);
offset+=WriteBlobByte(image,dpx.television.padding);
dpx.television.horizontal_sample_rate=0.0f;
value=GetDPXProperty(image_info,image,
- "dpx:television.horizontal_sample_rate");
+ "dpx:television.horizontal_sample_rate",exception);
if (value != (const char *) NULL)
dpx.television.horizontal_sample_rate=InterpretLocaleValue(value,
(char **) NULL);
offset+=WriteBlobFloat(image,dpx.television.horizontal_sample_rate);
dpx.television.vertical_sample_rate=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:television.vertical_sample_rate");
+ value=GetDPXProperty(image_info,image,"dpx:television.vertical_sample_rate",
+ exception);
if (value != (const char *) NULL)
dpx.television.vertical_sample_rate=InterpretLocaleValue(value,
(char **) NULL);
offset+=WriteBlobFloat(image,dpx.television.vertical_sample_rate);
dpx.television.frame_rate=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:television.frame_rate");
+ value=GetDPXProperty(image_info,image,"dpx:television.frame_rate",exception);
if (value != (const char *) NULL)
dpx.television.frame_rate=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,dpx.television.frame_rate);
dpx.television.time_offset=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:television.time_offset");
+ value=GetDPXProperty(image_info,image,"dpx:television.time_offset",exception);
if (value != (const char *) NULL)
dpx.television.time_offset=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,dpx.television.time_offset);
dpx.television.gamma=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:television.gamma");
+ value=GetDPXProperty(image_info,image,"dpx:television.gamma",exception);
if (value != (const char *) NULL)
dpx.television.gamma=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,dpx.television.gamma);
dpx.television.black_level=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:television.black_level");
+ value=GetDPXProperty(image_info,image,"dpx:television.black_level",exception);
if (value != (const char *) NULL)
dpx.television.black_level=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,dpx.television.black_level);
dpx.television.black_gain=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:television.black_gain");
+ value=GetDPXProperty(image_info,image,"dpx:television.black_gain",exception);
if (value != (const char *) NULL)
dpx.television.black_gain=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,dpx.television.black_gain);
dpx.television.break_point=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:television.break_point");
+ value=GetDPXProperty(image_info,image,"dpx:television.break_point",exception);
if (value != (const char *) NULL)
dpx.television.break_point=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,dpx.television.break_point);
dpx.television.white_level=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:television.white_level");
+ value=GetDPXProperty(image_info,image,"dpx:television.white_level",exception);
if (value != (const char *) NULL)
dpx.television.white_level=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,dpx.television.white_level);
dpx.television.integration_times=0.0f;
- value=GetDPXProperty(image_info,image,"dpx:television.integration_times");
+ value=GetDPXProperty(image_info,image,"dpx:television.integration_times",
+ exception);
if (value != (const char *) NULL)
dpx.television.integration_times=InterpretLocaleValue(value,(char **) NULL);
offset+=WriteBlobFloat(image,dpx.television.integration_times);
@@ -1770,7 +1773,7 @@
/*
Write user header.
*/
- value=GetDPXProperty(image_info,image,"dpx:user.id");
+ value=GetDPXProperty(image_info,image,"dpx:user.id",exception);
if (value != (const char *) NULL)
(void) strncpy(dpx.user.id,value,sizeof(dpx.user.id));
offset+=WriteBlob(image,sizeof(dpx.user.id),(unsigned char *) dpx.user.id);
diff --git a/coders/fits.c b/coders/fits.c
index 39f108a..b22c8a9 100644
--- a/coders/fits.c
+++ b/coders/fits.c
@@ -381,7 +381,7 @@
fits_info.endian=LSBEndian;
}
(void) FormatLocaleString(property,MaxTextExtent,"fits:%s",keyword);
- (void) SetImageProperty(image,property,p);
+ (void) SetImageProperty(image,property,p,exception);
}
c=0;
while (((TellBlob(image) % FITSBlocksize) != 0) && (c != EOF))
@@ -398,7 +398,7 @@
*/
if (comment != (char *) NULL)
{
- (void) SetImageProperty(image,"comment",comment);
+ (void) SetImageProperty(image,"comment",comment,exception);
comment=DestroyString(comment);
}
if (EOFBlob(image) != MagickFalse)
diff --git a/coders/fpx.c b/coders/fpx.c
index 28d8d70..dd829fb 100644
--- a/coders/fpx.c
+++ b/coders/fpx.c
@@ -314,7 +314,7 @@
}
(void) CopyMagickString(label,(char *) summary_info.title.ptr,
summary_info.title.length+1);
- (void) SetImageProperty(image,"label",label);
+ (void) SetImageProperty(image,"label",label,exception);
label=DestroyString(label);
}
if (summary_info.comments_valid)
@@ -338,7 +338,7 @@
}
(void) CopyMagickString(comments,(char *) summary_info.comments.ptr,
summary_info.comments.length+1);
- (void) SetImageProperty(image,"comment",comments);
+ (void) SetImageProperty(image,"comment",comments,exception);
comments=DestroyString(comments);
}
/*
diff --git a/coders/gif.c b/coders/gif.c
index 55b6ea7..b3c135b 100644
--- a/coders/gif.c
+++ b/coders/gif.c
@@ -1091,7 +1091,7 @@
header[count]='\0';
(void) ConcatenateString(&comments,(const char *) header);
}
- (void) SetImageProperty(image,"comment",comments);
+ (void) SetImageProperty(image,"comment",comments,exception);
comments=DestroyString(comments);
break;
}
@@ -1184,7 +1184,7 @@
else
(void) FormatLocaleString(name,sizeof(name),"gif:%.11s",
header);
- (void) SetImageProfile(image,name,profile);
+ (void) SetImageProfile(image,name,profile,exception);
profile=DestroyStringInfo(profile);
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" profile name=%s",name);
@@ -1681,7 +1681,7 @@
0));
(void) WriteBlobByte(image,(unsigned char) 0x00);
if ((LocaleCompare(write_info->magick,"GIF87") != 0) &&
- (GetImageProperty(image,"comment") != (const char *) NULL))
+ (GetImageProperty(image,"comment",exception) != (const char *) NULL))
{
const char
*value;
@@ -1697,7 +1697,7 @@
*/
(void) WriteBlobByte(image,(unsigned char) 0x21);
(void) WriteBlobByte(image,(unsigned char) 0xfe);
- value=GetImageProperty(image,"comment");
+ value=GetImageProperty(image,"comment",exception);
p=value;
while (strlen(p) != 0)
{
diff --git a/coders/hdr.c b/coders/hdr.c
index 06ab46d..f4f0da0 100644
--- a/coders/hdr.c
+++ b/coders/hdr.c
@@ -239,7 +239,7 @@
if (comment == (char *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
*p='\0';
- (void) SetImageProperty(image,"comment",comment);
+ (void) SetImageProperty(image,"comment",comment,exception);
comment=DestroyString(comment);
c=ReadBlobByte(image);
}
@@ -295,7 +295,7 @@
break;
}
(void) FormatLocaleString(tag,MaxTextExtent,"hdr:%s",keyword);
- (void) SetImageProperty(image,tag,value);
+ (void) SetImageProperty(image,tag,value,exception);
break;
}
case 'G':
@@ -307,7 +307,7 @@
break;
}
(void) FormatLocaleString(tag,MaxTextExtent,"hdr:%s",keyword);
- (void) SetImageProperty(image,tag,value);
+ (void) SetImageProperty(image,tag,value,exception);
break;
}
case 'P':
@@ -334,7 +334,7 @@
break;
}
(void) FormatLocaleString(tag,MaxTextExtent,"hdr:%s",keyword);
- (void) SetImageProperty(image,tag,value);
+ (void) SetImageProperty(image,tag,value,exception);
break;
}
case 'Y':
@@ -352,13 +352,13 @@
break;
}
(void) FormatLocaleString(tag,MaxTextExtent,"hdr:%s",keyword);
- (void) SetImageProperty(image,tag,value);
+ (void) SetImageProperty(image,tag,value,exception);
break;
}
default:
{
(void) FormatLocaleString(tag,MaxTextExtent,"hdr:%s",keyword);
- (void) SetImageProperty(image,tag,value);
+ (void) SetImageProperty(image,tag,value,exception);
break;
}
}
@@ -694,14 +694,14 @@
(void) ResetMagickMemory(header,' ',MaxTextExtent);
length=CopyMagickString(header,"#?RGBE\n",MaxTextExtent);
(void) WriteBlob(image,length,(unsigned char *) header);
- property=GetImageProperty(image,"comment");
+ property=GetImageProperty(image,"comment",exception);
if ((property != (const char *) NULL) &&
(strchr(property,'\n') == (char *) NULL))
{
count=FormatLocaleString(header,MaxTextExtent,"#%s\n",property);
(void) WriteBlob(image,(size_t) count,(unsigned char *) header);
}
- property=GetImageProperty(image,"hdr:exposure");
+ property=GetImageProperty(image,"hdr:exposure",exception);
if (property != (const char *) NULL)
{
count=FormatLocaleString(header,MaxTextExtent,"EXPOSURE=%g\n",
diff --git a/coders/histogram.c b/coders/histogram.c
index be8b2bf..d39769b 100644
--- a/coders/histogram.c
+++ b/coders/histogram.c
@@ -366,7 +366,8 @@
property=FileToString(filename,~0UL,exception);
if (property != (char *) NULL)
{
- (void) SetImageProperty(histogram_image,"comment",property);
+ (void) SetImageProperty(histogram_image,"comment",property,
+ exception);
property=DestroyString(property);
}
}
diff --git a/coders/html.c b/coders/html.c
index 97e1673..da660ae 100644
--- a/coders/html.c
+++ b/coders/html.c
@@ -304,7 +304,7 @@
"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n");
(void) WriteBlobString(image,"<html>\n");
(void) WriteBlobString(image,"<head>\n");
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
(void) FormatLocaleString(buffer,MaxTextExtent,"<title>%s</title>\n",
value);
diff --git a/coders/jp2.c b/coders/jp2.c
index cc8d33c..d966bb3 100644
--- a/coders/jp2.c
+++ b/coders/jp2.c
@@ -622,7 +622,7 @@
ThrowReaderException(CorruptImageError,"MemoryAllocationFailed");
icc_profile=(StringInfo *) GetImageProfile(image,"icc");
if (icc_profile == (StringInfo *) NULL)
- (void) SetImageProfile(image,"icc",profile);
+ (void) SetImageProfile(image,"icc",profile,exception);
else
(void) ConcatenateStringInfo(icc_profile,profile);
profile=DestroyStringInfo(profile);
diff --git a/coders/jpeg.c b/coders/jpeg.c
index 1e23954..af8c77c 100644
--- a/coders/jpeg.c
+++ b/coders/jpeg.c
@@ -396,7 +396,7 @@
for (p=comment; i-- >= 0; p++)
*p=(char) GetCharacter(jpeg_info);
*p='\0';
- (void) SetImageProperty(image,"comment",comment);
+ (void) SetImageProperty(image,"comment",comment,exception);
comment=DestroyString(comment);
return(MagickTrue);
}
@@ -475,7 +475,7 @@
}
else
{
- status=SetImageProfile(image,"icc",profile);
+ status=SetImageProfile(image,"icc",profile,exception);
profile=DestroyStringInfo(profile);
if (status == MagickFalse)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
@@ -575,7 +575,7 @@
}
else
{
- status=SetImageProfile(image,"8bim",profile);
+ status=SetImageProfile(image,"8bim",profile,exception);
profile=DestroyStringInfo(profile);
if (status == MagickFalse)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
@@ -683,7 +683,7 @@
GetStringInfoDatum(previous_profile),
GetStringInfoLength(previous_profile));
}
- status=SetImageProfile(image,name,profile);
+ status=SetImageProfile(image,name,profile,exception);
profile=DestroyStringInfo(profile);
if (status == MagickFalse)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
@@ -872,7 +872,7 @@
}
}
-static void JPEGSetImageSamplingFactor(struct jpeg_decompress_struct *jpeg_info, Image *image)
+static void JPEGSetImageSamplingFactor(struct jpeg_decompress_struct *jpeg_info, Image *image,ExceptionInfo *exception)
{
char
sampling_factor[MaxTextExtent];
@@ -930,7 +930,8 @@
break;
}
}
- (void) SetImageProperty(image,"jpeg:sampling-factor",sampling_factor);
+ (void) SetImageProperty(image,"jpeg:sampling-factor",sampling_factor,
+ exception);
(void) LogMagickEvent(CoderEvent,GetMagickModule(),"Sampling Factors: %s",
sampling_factor);
}
@@ -1208,10 +1209,10 @@
(int) jpeg_info.output_width,(int) jpeg_info.output_height);
}
JPEGSetImageQuality(&jpeg_info,image);
- JPEGSetImageSamplingFactor(&jpeg_info,image);
+ JPEGSetImageSamplingFactor(&jpeg_info,image,exception);
(void) FormatLocaleString(value,MaxTextExtent,"%.20g",(double)
jpeg_info.out_color_space);
- (void) SetImageProperty(image,"jpeg:colorspace",value);
+ (void) SetImageProperty(image,"jpeg:colorspace",value,exception);
if (image_info->ping != MagickFalse)
{
jpeg_destroy_decompress(&jpeg_info);
@@ -2049,7 +2050,7 @@
#endif
}
sampling_factor=(const char *) NULL;
- value=GetImageProperty(image,"jpeg:sampling-factor");
+ value=GetImageProperty(image,"jpeg:sampling-factor",exception);
if (value != (char *) NULL)
{
sampling_factor=value;
@@ -2231,7 +2232,7 @@
/*
Write JPEG profiles.
*/
- value=GetImageProperty(image,"comment");
+ value=GetImageProperty(image,"comment",exception);
if (value != (char *) NULL)
for (i=0; i < (ssize_t) strlen(value); i+=65533L)
jpeg_write_marker(&jpeg_info,JPEG_COM,(unsigned char *) value+i,
diff --git a/coders/label.c b/coders/label.c
index 04a3a63..c97acd1 100644
--- a/coders/label.c
+++ b/coders/label.c
@@ -125,9 +125,9 @@
(void) ResetImagePage(image,"0x0+0+0");
property=InterpretImageProperties(image_info,image,image_info->filename,
exception);
- (void) SetImageProperty(image,"label",property);
+ (void) SetImageProperty(image,"label",property,exception);
property=DestroyString(property);
- label=GetImageProperty(image,"label");
+ label=GetImageProperty(image,"label",exception);
draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);
draw_info->text=ConstantString(label);
if (((image->columns != 0) || (image->rows != 0)) &&
@@ -204,7 +204,7 @@
(void) FormatLocaleString(pointsize,MaxTextExtent,"%.20g",
draw_info->pointsize);
- (void) SetImageProperty(image,"label:pointsize",pointsize);
+ (void) SetImageProperty(image,"label:pointsize",pointsize,exception);
}
draw_info=DestroyDrawInfo(draw_info);
return(GetFirstImageInList(image));
diff --git a/coders/meta.c b/coders/meta.c
index 86a2cc9..850026e 100644
--- a/coders/meta.c
+++ b/coders/meta.c
@@ -1150,7 +1150,7 @@
GetBlobSize(buff));
if (profile == (StringInfo *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
- status=SetImageProfile(image,"8bim",profile);
+ status=SetImageProfile(image,"8bim",profile,exception);
profile=DestroyStringInfo(profile);
if (status == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
@@ -1259,7 +1259,7 @@
GetBlobSize(buff));
if (profile == (StringInfo *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
- status=SetImageProfile(image,name,profile);
+ status=SetImageProfile(image,name,profile,exception);
profile=DestroyStringInfo(profile);
if (status == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
@@ -1291,7 +1291,7 @@
GetBlobSize(buff));
if (profile == (StringInfo *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
- (void) SetImageProfile(image,"icc",profile);
+ (void) SetImageProfile(image,"icc",profile,exception);
profile=DestroyStringInfo(profile);
blob=DetachBlob(buff->blob);
blob=(unsigned char *) RelinquishMagickMemory(blob);
@@ -1346,7 +1346,7 @@
p[10]=(unsigned char) (length >> 8);
p[11]=(unsigned char) (length & 0xff);
SetStringInfoDatum(profile,GetBlobStreamData(buff));
- (void) SetImageProfile(image,"8bim",profile);
+ (void) SetImageProfile(image,"8bim",profile,exception);
profile=DestroyStringInfo(profile);
blob=DetachBlob(buff->blob);
blob=(unsigned char *) RelinquishMagickMemory(blob);
@@ -1375,7 +1375,7 @@
GetBlobSize(buff));
if (profile == (StringInfo *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
- (void) SetImageProfile(image,"xmp",profile);
+ (void) SetImageProfile(image,"xmp",profile,exception);
profile=DestroyStringInfo(profile);
blob=DetachBlob(buff->blob);
blob=(unsigned char *) RelinquishMagickMemory(blob);
diff --git a/coders/miff.c b/coders/miff.c
index dcbcfbd..464c478 100644
--- a/coders/miff.c
+++ b/coders/miff.c
@@ -544,7 +544,7 @@
if (comment == (char *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
*p='\0';
- (void) SetImageProperty(image,"comment",comment);
+ (void) SetImageProperty(image,"comment",comment,exception);
comment=DestroyString(comment);
c=ReadBlobByte(image);
}
@@ -628,7 +628,7 @@
&image->border_color,exception);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'c':
@@ -680,7 +680,7 @@
image->columns=StringToUnsignedLong(options);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'd':
@@ -708,7 +708,7 @@
image->dispose=(DisposeType) dispose;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'e':
@@ -726,7 +726,7 @@
image->endian=(EndianType) endian;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'g':
@@ -759,7 +759,7 @@
image->chromaticity.green_primary.x;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'i':
@@ -775,7 +775,7 @@
image->iterations=StringToUnsignedLong(options);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'm':
@@ -804,7 +804,7 @@
(void) CloneString(&image->montage,options);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'o':
@@ -834,7 +834,7 @@
image->orientation=(OrientationType) orientation;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'p':
@@ -865,11 +865,11 @@
if (profile == (StringInfo *) NULL)
ThrowReaderException(ResourceLimitError,
"MemoryAllocationFailed");
- (void) SetImageProfile(image,keyword+8,profile);
+ (void) SetImageProfile(image,keyword+8,profile,exception);
profile=DestroyStringInfo(profile);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'q':
@@ -893,7 +893,7 @@
quantum_format=(QuantumFormatType) format;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'r':
@@ -935,7 +935,7 @@
image->rows=StringToUnsignedLong(options);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 's':
@@ -946,7 +946,7 @@
image->scene=StringToUnsignedLong(options);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 't':
@@ -979,7 +979,7 @@
image->type=(ImageType) type;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'u':
@@ -997,7 +997,7 @@
image->units=(ResolutionType) units;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'v':
@@ -1008,7 +1008,7 @@
version=InterpretLocaleValue(options,(char **) NULL);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'w':
@@ -1024,12 +1024,12 @@
image->chromaticity.white_point.x;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
default:
{
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
}
@@ -2135,14 +2135,15 @@
(void) WriteBlobString(image,buffer);
}
if (quantum_info->format == FloatingPointQuantumFormat)
- (void) SetImageProperty(image,"quantum:format","floating-point");
+ (void) SetImageProperty(image,"quantum:format","floating-point",
+ exception);
ResetImagePropertyIterator(image);
property=GetNextImageProperty(image);
while (property != (const char *) NULL)
{
(void) FormatLocaleString(buffer,MaxTextExtent,"%s=",property);
(void) WriteBlobString(image,buffer);
- value=GetImageProperty(image,property);
+ value=GetImageProperty(image,property,exception);
if (value != (const char *) NULL)
{
for (i=0; i < (ssize_t) strlen(value); i++)
diff --git a/coders/mpc.c b/coders/mpc.c
index c2d17a2..6cbf2ce 100644
--- a/coders/mpc.c
+++ b/coders/mpc.c
@@ -260,7 +260,7 @@
if (comment == (char *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
*p='\0';
- (void) SetImageProperty(image,"comment",comment);
+ (void) SetImageProperty(image,"comment",comment,exception);
comment=DestroyString(comment);
c=ReadBlobByte(image);
}
@@ -344,7 +344,7 @@
&image->border_color,exception);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'c':
@@ -396,7 +396,7 @@
image->columns=StringToUnsignedLong(options);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'd':
@@ -424,7 +424,7 @@
image->dispose=(DisposeType) dispose;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'e':
@@ -448,7 +448,7 @@
options,(char **) NULL);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'g':
@@ -469,7 +469,7 @@
image->chromaticity.green_primary.x;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'i':
@@ -485,7 +485,7 @@
image->iterations=StringToUnsignedLong(options);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'm':
@@ -526,7 +526,7 @@
(void) CloneString(&image->montage,options);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'o':
@@ -556,7 +556,7 @@
image->orientation=(OrientationType) orientation;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'p':
@@ -584,11 +584,11 @@
if (profile == (StringInfo *) NULL)
ThrowReaderException(ResourceLimitError,
"MemoryAllocationFailed");
- (void) SetImageProfile(image,keyword+8,profile);
+ (void) SetImageProfile(image,keyword+8,profile,exception);
profile=DestroyStringInfo(profile);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'q':
@@ -604,7 +604,7 @@
quantum_depth=StringToUnsignedLong(options);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'r':
@@ -644,7 +644,7 @@
image->rows=StringToUnsignedLong(options);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 's':
@@ -655,7 +655,7 @@
image->scene=StringToUnsignedLong(options);
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 't':
@@ -687,7 +687,7 @@
image->type=(ImageType) type;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'u':
@@ -698,14 +698,14 @@
ssize_t
units;
- units=ParseCommandOption(MagickResolutionOptions,MagickFalse,
- options);
+ units=ParseCommandOption(MagickResolutionOptions,
+ MagickFalse,options);
if (units < 0)
break;
image->units=(ResolutionType) units;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
case 'w':
@@ -721,12 +721,12 @@
image->chromaticity.white_point.x;
break;
}
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
default:
{
- (void) SetImageProperty(image,keyword,options);
+ (void) SetImageProperty(image,keyword,options,exception);
break;
}
}
@@ -1283,7 +1283,7 @@
{
(void) FormatLocaleString(buffer,MaxTextExtent,"%s=",property);
(void) WriteBlobString(image,buffer);
- value=GetImageProperty(image,property);
+ value=GetImageProperty(image,property,exception);
if (value != (const char *) NULL)
{
for (i=0; i < (ssize_t) strlen(value); i++)
diff --git a/coders/msl.c b/coders/msl.c
index 7991ab0..d74616a 100644
--- a/coders/msl.c
+++ b/coders/msl.c
@@ -1805,7 +1805,8 @@
const char
*attribute;
- attribute=GetImageProperty(msl_info->attributes[j],"id");
+ attribute=GetImageProperty(msl_info->attributes[j],"id",
+ &exception);
if ((attribute != (const char *) NULL) &&
(LocaleCompare(attribute,value) == 0))
{
@@ -1914,7 +1915,8 @@
const char
*attribute;
- attribute=GetImageProperty(msl_info->attributes[j],"id");
+ attribute=GetImageProperty(msl_info->attributes[j],"id",
+ &exception);
if ((attribute != (const char *) NULL) &&
(LocaleCompare(value,value) == 0))
{
@@ -3292,7 +3294,8 @@
{
(void) FormatLocaleString(value,MaxTextExtent,"%.20g",
(double) msl_info->image[n]->rows);
- (void) SetImageProperty(msl_info->attributes[n],key,value);
+ (void) SetImageProperty(msl_info->attributes[n],key,value,
+ &exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -3304,7 +3307,8 @@
{
(void) FormatLocaleString(value,MaxTextExtent,"%.20g",
(double) msl_info->image[n]->columns);
- (void) SetImageProperty(msl_info->attributes[n],key,value);
+ (void) SetImageProperty(msl_info->attributes[n],key,value,
+ &exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -3623,7 +3627,8 @@
const char
*attribute;
- attribute=GetImageProperty(msl_info->attributes[j],"id");
+ attribute=GetImageProperty(msl_info->attributes[j],"id",
+ &exception);
if ((attribute != (const char *) NULL) &&
(LocaleCompare(attribute,value) == 0))
{
@@ -6024,7 +6029,8 @@
const char
*property;
- property=GetImageProperty(msl_info->attributes[j],"id");
+ property=GetImageProperty(msl_info->attributes[j],"id",
+ &exception);
if (LocaleCompare(property,value) == 0)
{
SetImageMask(msl_info->image[n],msl_info->image[j],
@@ -6041,7 +6047,8 @@
const char
*property;
- property=GetImageProperty(msl_info->attributes[j],"id");
+ property=GetImageProperty(msl_info->attributes[j],"id",
+ &exception);
if (LocaleCompare(property,value) == 0)
{
SetImageClipMask(msl_info->image[n],msl_info->image[j],
@@ -6066,7 +6073,8 @@
break;
}
(void) SetMSLAttributes(msl_info,keyword,value);
- (void) SetImageProperty(msl_info->image[n],keyword,value);
+ (void) SetImageProperty(msl_info->image[n],keyword,value,
+ &exception);
break;
}
case 'D':
@@ -6083,7 +6091,8 @@
break;
}
(void) SetMSLAttributes(msl_info,keyword,value);
- (void) SetImageProperty(msl_info->image[n],keyword,value);
+ (void) SetImageProperty(msl_info->image[n],keyword,value,
+ &exception);
break;
}
case 'O':
@@ -6105,7 +6114,8 @@
break;
}
(void) SetMSLAttributes(msl_info,keyword,value);
- (void) SetImageProperty(msl_info->image[n],keyword,value);
+ (void) SetImageProperty(msl_info->image[n],keyword,value,
+ msl_info->exception);
break;
}
case 'P':
@@ -6142,13 +6152,15 @@
break;
}
(void) SetMSLAttributes(msl_info,keyword,value);
- (void) SetImageProperty(msl_info->image[n],keyword,value);
+ (void) SetImageProperty(msl_info->image[n],keyword,value,
+ msl_info->exception);
break;
}
default:
{
(void) SetMSLAttributes(msl_info,keyword,value);
- (void) SetImageProperty(msl_info->image[n],keyword,value);
+ (void) SetImageProperty(msl_info->image[n],keyword,value,
+ msl_info->exception);
break;
}
}
@@ -6798,7 +6810,8 @@
for (j=0; j<msl_info->n;j++)
{
const char *
- theAttr = GetImageProperty(msl_info->attributes[j], "id");
+ theAttr = GetImageProperty(msl_info->attributes[j], "id",
+ &exception);
if (theAttr && LocaleCompare(theAttr, value) == 0)
{
watermark = msl_info->image[j];
@@ -6862,7 +6875,8 @@
for (j=0; j<msl_info->n;j++)
{
const char *
- theAttr = GetImageProperty(msl_info->attributes[j], "id");
+ theAttr = GetImageProperty(msl_info->attributes[j], "id",
+ &exception);
if (theAttr && LocaleCompare(theAttr, value) == 0)
{
stereoImage = msl_info->image[j];
@@ -7105,7 +7119,8 @@
const char
*attribute;
- attribute=GetImageProperty(msl_info->attributes[j],"id");
+ attribute=GetImageProperty(msl_info->attributes[j],"id",
+ &exception);
if ((attribute != (const char *) NULL) &&
(LocaleCompare(attribute,value) == 0))
{
@@ -7333,7 +7348,7 @@
break;
StripString(msl_info->content);
(void) SetImageProperty(msl_info->image[n],"comment",
- msl_info->content);
+ msl_info->content,msl_info->exception);
break;
}
break;
@@ -7350,9 +7365,12 @@
while ( i-- )
{
if (msl_info->image[msl_info->n] != (Image *) NULL)
- msl_info->image[msl_info->n]=DestroyImage(msl_info->image[msl_info->n]);
- msl_info->attributes[msl_info->n]=DestroyImage(msl_info->attributes[msl_info->n]);
- msl_info->image_info[msl_info->n]=DestroyImageInfo(msl_info->image_info[msl_info->n]);
+ msl_info->image[msl_info->n]=DestroyImage(
+ msl_info->image[msl_info->n]);
+ msl_info->attributes[msl_info->n]=DestroyImage(
+ msl_info->attributes[msl_info->n]);
+ msl_info->image_info[msl_info->n]=DestroyImageInfo(
+ msl_info->image_info[msl_info->n]);
msl_info->n--;
}
}
@@ -7377,7 +7395,7 @@
break;
StripString(msl_info->content);
(void) SetImageProperty(msl_info->image[n],"label",
- msl_info->content);
+ msl_info->content,msl_info->exception);
break;
}
break;
@@ -8075,7 +8093,7 @@
{
if (LocaleCompare(keyword,"id") == 0)
{
- (void) SetImageProperty(attributes,keyword,value);
+ (void) SetImageProperty(attributes,keyword,value,exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
diff --git a/coders/pcd.c b/coders/pcd.c
index bc6ed8e..af0df4f 100644
--- a/coders/pcd.c
+++ b/coders/pcd.c
@@ -408,7 +408,7 @@
for (p=image; p != (Image *) NULL; p=p->next)
{
(void) DeleteImageProperty(p,"label");
- (void) SetImageProperty(p,"label",DefaultTileLabel);
+ (void) SetImageProperty(p,"label",DefaultTileLabel,exception);
}
montage_info=CloneMontageInfo(image_info,(MontageInfo *) NULL);
(void) CopyMagickString(montage_info->filename,image_info->filename,
diff --git a/coders/pdb.c b/coders/pdb.c
index f1d9079..6202bc1 100644
--- a/coders/pdb.c
+++ b/coders/pdb.c
@@ -572,7 +572,7 @@
*p='\0';
if (comment == (char *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
- (void) SetImageProperty(image,"comment",comment);
+ (void) SetImageProperty(image,"comment",comment,exception);
comment=DestroyString(comment);
}
(void) CloseBlob(image);
@@ -770,7 +770,7 @@
(void) CopyMagickMemory(pdb_info.id,"View",4);
pdb_info.seed=0;
pdb_info.next_record=0;
- comment=GetImageProperty(image,"comment");
+ comment=GetImageProperty(image,"comment",exception);
pdb_info.number_records=(comment == (const char *) NULL ? 1 : 2);
(void) WriteBlob(image,32,(unsigned char *) pdb_info.name);
(void) WriteBlobMSBShort(image,(unsigned short) pdb_info.attributes);
diff --git a/coders/pdf.c b/coders/pdf.c
index 514181f..0a86318 100644
--- a/coders/pdf.c
+++ b/coders/pdf.c
@@ -473,12 +473,12 @@
name[i]='\0';
value=AcquireString(name);
(void) SubstituteString(&value,"#20"," ");
- (void) SetImageProperty(image,property,value);
+ (void) SetImageProperty(image,property,value,exception);
value=DestroyString(value);
continue;
}
if (LocaleNCompare(PDFVersion,command,strlen(PDFVersion)) == 0)
- (void) SetImageProperty(image,"pdf:Version",command);
+ (void) SetImageProperty(image,"pdf:Version",command,exception);
count=0;
if (cropbox != MagickFalse)
{
@@ -532,7 +532,8 @@
(void) FormatLocaleString(geometry,MaxTextExtent,
"%gx%g%+.15g%+.15g",bounds.x2-bounds.x1,bounds.y2-bounds.y1,
bounds.x1,bounds.y1);
- (void) SetImageProperty(image,"pdf:HiResBoundingBox",geometry);
+ (void) SetImageProperty(image,"pdf:HiResBoundingBox",geometry,
+ exception);
page.width=(size_t) floor(bounds.x2-bounds.x1+0.5);
page.height=(size_t) floor(bounds.y2-bounds.y1+0.5);
hires_bounds=bounds;
@@ -1130,11 +1131,11 @@
(void) WriteBlobString(image,"<<\n");
(void) WriteBlobString(image,"/Subtype /XML\n");
*modify_date='\0';
- value=GetImageProperty(image,"date:modify");
+ value=GetImageProperty(image,"date:modify",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(modify_date,value,MaxTextExtent);
*create_date='\0';
- value=GetImageProperty(image,"date:create");
+ value=GetImageProperty(image,"date:create",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(create_date,value,MaxTextExtent);
(void) FormatMagickTime(time((time_t *) NULL),MaxTextExtent,timestamp);
@@ -1318,7 +1319,7 @@
if (image_info->pointsize != 0.0)
pointsize=image_info->pointsize;
text_size=0;
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
text_size=(size_t) (MultilineCensus(value)*pointsize+12);
(void) text_size;
@@ -1336,7 +1337,7 @@
(void) WriteBlobString(image,buffer);
(void) WriteBlobString(image,"/Resources <<\n");
labels=(char **) NULL;
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
labels=StringToList(value);
if (labels != (char **) NULL)
diff --git a/coders/pict.c b/coders/pict.c
index 143fca6..1b09737 100644
--- a/coders/pict.c
+++ b/coders/pict.c
@@ -1276,7 +1276,7 @@
break;
profile=BlobToStringInfo((const void *) NULL,length);
SetStringInfoDatum(profile,info);
- status=SetImageProfile(image,"icc",profile);
+ status=SetImageProfile(image,"icc",profile,exception);
profile=DestroyStringInfo(profile);
if (status == MagickFalse)
ThrowReaderException(ResourceLimitError,
@@ -1289,7 +1289,7 @@
break;
profile=BlobToStringInfo((const void *) NULL,length);
SetStringInfoDatum(profile,info);
- status=SetImageProfile(image,"iptc",profile);
+ status=SetImageProfile(image,"iptc",profile,exception);
if (status == MagickFalse)
ThrowReaderException(ResourceLimitError,
"MemoryAllocationFailed");
diff --git a/coders/png.c b/coders/png.c
index a710891..b863d54 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -1798,7 +1798,7 @@
static int
Magick_png_read_raw_profile(Image *image, const ImageInfo *image_info,
- png_textp text,int ii)
+ png_textp text,int ii,ExceptionInfo *exception)
{
register ssize_t
i;
@@ -1886,7 +1886,7 @@
/*
We have already read "Raw profile type.
*/
- (void) SetImageProfile(image,&text[ii].key[17],profile);
+ (void) SetImageProfile(image,&text[ii].key[17],profile,exception);
profile=DestroyStringInfo(profile);
if (image_info->verbose)
@@ -2305,7 +2305,7 @@
return((Image *) NULL);
}
SetStringInfoDatum(profile,(const unsigned char *) info);
- (void) SetImageProfile(image,"icc",profile);
+ (void) SetImageProfile(image,"icc",profile,exception);
profile=DestroyStringInfo(profile);
}
}
@@ -2766,17 +2766,17 @@
(void) FormatLocaleString(msg,MaxTextExtent,
"%d, %d",(int) ping_width, (int) ping_height);
- (void) SetImageProperty(image,"PNG:IHDR.width,height ",msg);
+ (void) SetImageProperty(image,"PNG:IHDR.width,height ",msg,exception);
(void) FormatLocaleString(msg,MaxTextExtent,"%d",(int) ping_bit_depth);
- (void) SetImageProperty(image,"PNG:IHDR.bit_depth ",msg);
+ (void) SetImageProperty(image,"PNG:IHDR.bit_depth ",msg,exception);
(void) FormatLocaleString(msg,MaxTextExtent,"%d",(int) ping_color_type);
- (void) SetImageProperty(image,"PNG:IHDR.color_type ",msg);
+ (void) SetImageProperty(image,"PNG:IHDR.color_type ",msg,exception);
(void) FormatLocaleString(msg,MaxTextExtent,"%d",
(int) ping_interlace_method);
- (void) SetImageProperty(image,"PNG:IHDR.interlace_method",msg);
+ (void) SetImageProperty(image,"PNG:IHDR.interlace_method",msg,exception);
}
/*
@@ -3347,7 +3347,8 @@
if (memcmp(text[i].key, "Raw profile type ",17) == 0)
{
- (void) Magick_png_read_raw_profile(image,image_info,text,(int) i);
+ (void) Magick_png_read_raw_profile(image,image_info,text,(int) i,
+ exception);
num_raw_profiles++;
}
@@ -3375,7 +3376,7 @@
if (!png_get_valid(ping,ping_info,PNG_INFO_pHYs) ||
(LocaleCompare(text[i].key,"density") != 0 &&
LocaleCompare(text[i].key,"units") != 0))
- (void) SetImageProperty(image,text[i].key,value);
+ (void) SetImageProperty(image,text[i].key,value,exception);
if (logging != MagickFalse)
{
@@ -3501,38 +3502,38 @@
/* libpng doesn't tell us whether they were tEXt, zTXt, or iTXt */
(void) FormatLocaleString(msg,MaxTextExtent,
"%d tEXt/zTXt/iTXt chunks were found", num_text_total);
- (void) SetImageProperty(image,"PNG:text ",msg);
+ (void) SetImageProperty(image,"PNG:text ",msg,exception);
}
if (num_raw_profiles != 0)
{
(void) FormatLocaleString(msg,MaxTextExtent,
"%d were found", num_raw_profiles);
- (void) SetImageProperty(image,"PNG:text-encoded profiles",msg);
+ (void) SetImageProperty(image,"PNG:text-encoded profiles",msg,exception);
}
if (png_get_valid(ping,ping_info,PNG_INFO_cHRM))
{
(void) FormatLocaleString(msg,MaxTextExtent,"%s",
"chunk was found (see Chromaticity, above)");
- (void) SetImageProperty(image,"PNG:cHRM ",msg);
+ (void) SetImageProperty(image,"PNG:cHRM ",msg,exception);
}
if (png_get_valid(ping,ping_info,PNG_INFO_bKGD))
{
(void) FormatLocaleString(msg,MaxTextExtent,"%s",
"chunk was found (see Background color, above)");
- (void) SetImageProperty(image,"PNG:bKGD ",msg);
+ (void) SetImageProperty(image,"PNG:bKGD ",msg,exception);
}
(void) FormatLocaleString(msg,MaxTextExtent,"%s",
"chunk was found");
if (png_get_valid(ping,ping_info,PNG_INFO_iCCP))
- (void) SetImageProperty(image,"PNG:iCCP ",msg);
+ (void) SetImageProperty(image,"PNG:iCCP ",msg,exception);
if (png_get_valid(ping,ping_info,PNG_INFO_tRNS))
- (void) SetImageProperty(image,"PNG:tRNS ",msg);
+ (void) SetImageProperty(image,"PNG:tRNS ",msg,exception);
#if defined(PNG_sRGB_SUPPORTED)
if (png_get_valid(ping,ping_info,PNG_INFO_sRGB))
@@ -3540,7 +3541,7 @@
(void) FormatLocaleString(msg,MaxTextExtent,
"intent=%d (See Rendering intent)",
(int) intent);
- (void) SetImageProperty(image,"PNG:sRGB ",msg);
+ (void) SetImageProperty(image,"PNG:sRGB ",msg,exception);
}
#endif
@@ -3549,7 +3550,7 @@
(void) FormatLocaleString(msg,MaxTextExtent,
"gamma=%.8g (See Gamma, above)",
file_gamma);
- (void) SetImageProperty(image,"PNG:gAMA ",msg);
+ (void) SetImageProperty(image,"PNG:gAMA ",msg,exception);
}
#if defined(PNG_pHYs_SUPPORTED)
@@ -3558,7 +3559,7 @@
(void) FormatLocaleString(msg,MaxTextExtent,
"x_res=%.10g, y_res=%.10g, units=%d",
(double) x_resolution,(double) y_resolution, unit_type);
- (void) SetImageProperty(image,"PNG:pHYs ",msg);
+ (void) SetImageProperty(image,"PNG:pHYs ",msg,exception);
}
#endif
@@ -3567,7 +3568,7 @@
{
(void) FormatLocaleString(msg,MaxTextExtent,"x_off=%.20g, y_off=%.20g",
(double) image->page.x,(double) image->page.y);
- (void) SetImageProperty(image,"PNG:oFFs ",msg);
+ (void) SetImageProperty(image,"PNG:oFFs ",msg,exception);
}
#endif
@@ -3577,7 +3578,7 @@
(void) FormatLocaleString(msg,MaxTextExtent,
"width=%.20g, height=%.20g",
(double) image->page.width,(double) image->page.height);
- (void) SetImageProperty(image,"PNG:vpAg ",msg);
+ (void) SetImageProperty(image,"PNG:vpAg ",msg,exception);
}
}
@@ -10635,7 +10636,7 @@
png_textp
text;
- value=GetImageProperty(image,property);
+ value=GetImageProperty(image,property,exception);
/* Don't write any "png:" properties; those are just for "identify" */
if (LocaleNCompare(property,"png:",4) != 0 &&
@@ -10762,7 +10763,7 @@
s[0]=(char) ping_bit_depth;
s[1]='\0';
- (void) SetImageProperty(IMimage,"png:bit-depth-written",s);
+ (void) SetImageProperty(IMimage,"png:bit-depth-written",s,exception);
if (logging != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -11711,7 +11712,7 @@
&image->exception);
/* Retrieve sample depth used */
- value=GetImageProperty(jpeg_image,"png:bit-depth-written");
+ value=GetImageProperty(jpeg_image,"png:bit-depth-written",exception);
if (value != (char *) NULL)
jng_alpha_sample_depth= (unsigned int) value[0];
}
diff --git a/coders/pnm.c b/coders/pnm.c
index 7a41a0f..483bb9b 100644
--- a/coders/pnm.c
+++ b/coders/pnm.c
@@ -148,7 +148,8 @@
return(offset);
}
-static size_t PNMInteger(Image *image,const unsigned int base)
+static size_t PNMInteger(Image *image,const unsigned int base,
+ ExceptionInfo *exception)
{
char
*comment;
@@ -204,7 +205,7 @@
} while (isdigit(c) == MagickFalse);
if (comment != (char *) NULL)
{
- (void) SetImageProperty(image,"comment",comment);
+ (void) SetImageProperty(image,"comment",comment,exception);
comment=DestroyString(comment);
}
if (base == 2)
@@ -298,8 +299,8 @@
/*
PBM, PGM, PPM, and PNM.
*/
- image->columns=PNMInteger(image,10);
- image->rows=PNMInteger(image,10);
+ image->columns=PNMInteger(image,10,exception);
+ image->rows=PNMInteger(image,10,exception);
if ((format == 'f') || (format == 'F'))
{
char
@@ -313,7 +314,7 @@
if ((format == '1') || (format == '4'))
max_value=1; /* bitmap */
else
- max_value=PNMInteger(image,10);
+ max_value=PNMInteger(image,10,exception);
}
}
else
@@ -441,7 +442,8 @@
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- SetPixelRed(image,PNMInteger(image,2) == 0 ? QuantumRange : 0,q);
+ SetPixelRed(image,PNMInteger(image,2,exception) == 0 ?
+ QuantumRange : 0,q);
SetPixelGreen(image,GetPixelRed(image,q),q);
SetPixelBlue(image,GetPixelRed(image,q),q);
q+=GetPixelChannels(image);
@@ -494,7 +496,7 @@
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- intensity=PNMInteger(image,10);
+ intensity=PNMInteger(image,10,exception);
SetPixelRed(image,intensity,q);
if (scale != (Quantum *) NULL)
SetPixelRed(image,scale[ConstrainPixel(image,(ssize_t) intensity,
@@ -552,9 +554,9 @@
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- pixel.red=(MagickRealType) PNMInteger(image,10);
- pixel.green=(MagickRealType) PNMInteger(image,10);
- pixel.blue=(MagickRealType) PNMInteger(image,10);
+ pixel.red=(MagickRealType) PNMInteger(image,10,exception);
+ pixel.green=(MagickRealType) PNMInteger(image,10,exception);
+ pixel.blue=(MagickRealType) PNMInteger(image,10,exception);
if (scale != (Quantum *) NULL)
{
pixel.red=(MagickRealType) scale[ConstrainPixel(image,(ssize_t)
@@ -1540,7 +1542,7 @@
}
(void) FormatLocaleString(buffer,MaxTextExtent,"P%c\n",format);
(void) WriteBlobString(image,buffer);
- value=GetImageProperty(image,"comment");
+ value=GetImageProperty(image,"comment",exception);
if (value != (const char *) NULL)
{
register const char
diff --git a/coders/ps.c b/coders/ps.c
index 298c95e..3ba4b38 100644
--- a/coders/ps.c
+++ b/coders/ps.c
@@ -516,7 +516,7 @@
continue;
if (LocaleNCompare(PostscriptLevel,command,strlen(PostscriptLevel)) == 0)
{
- (void) SetImageProperty(image,"ps:Level",command+4);
+ (void) SetImageProperty(image,"ps:Level",command+4,exception);
if (GlobExpression(command,"*EPSF-*",MagickTrue) != MagickFalse)
pages=1;
}
@@ -541,7 +541,7 @@
datum=GetStringInfoDatum(profile);
datum[i]=(unsigned char) c;
}
- (void) SetImageProfile(image,"icc",profile);
+ (void) SetImageProfile(image,"icc",profile,exception);
profile=DestroyStringInfo(profile);
continue;
}
@@ -561,7 +561,7 @@
p=GetStringInfoDatum(profile);
for (i=0; i < (ssize_t) length; i++)
*p++=(unsigned char) ProfileInteger(image,hex_digits);
- (void) SetImageProfile(image,"8bim",profile);
+ (void) SetImageProfile(image,"8bim",profile,exception);
profile=DestroyStringInfo(profile);
continue;
}
@@ -590,7 +590,7 @@
break;
}
SetStringInfoLength(profile,i);
- (void) SetImageProfile(image,"xmp",profile);
+ (void) SetImageProfile(image,"xmp",profile,exception);
profile=DestroyStringInfo(profile);
continue;
}
@@ -633,7 +633,7 @@
(void) SubstituteString(&value,"(","");
(void) SubstituteString(&value,")","");
(void) StripString(value);
- (void) SetImageProperty(image,property,value);
+ (void) SetImageProperty(image,property,value,exception);
value=DestroyString(value);
continue;
}
@@ -667,7 +667,7 @@
(void) FormatLocaleString(geometry,MaxTextExtent,
"%gx%g%+.15g%+.15g",bounds.x2-bounds.x1,bounds.y2-bounds.y1,
bounds.x1,bounds.y1);
- (void) SetImageProperty(image,"ps:HiResBoundingBox",geometry);
+ (void) SetImageProperty(image,"ps:HiResBoundingBox",geometry,exception);
page.width=(size_t) floor(bounds.x2-bounds.x1+0.5);
page.height=(size_t) floor(bounds.y2-bounds.y1+0.5);
hires_bounds=bounds;
@@ -1485,7 +1485,7 @@
if (image_info->pointsize != 0.0)
pointsize=image_info->pointsize;
text_size=0;
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
text_size=(size_t) (MultilineCensus(value)*pointsize+12);
if (page == 1)
@@ -1561,7 +1561,7 @@
(void) WriteBlobByte(image,GetStringInfoDatum(profile)[i]);
(void) WriteBlobString(image,"\n%end_xml_packet\n%end_xml_code\n");
}
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
(void) WriteBlobString(image,
"%%DocumentNeededResources: font Times-Roman\n");
@@ -1674,7 +1674,7 @@
(void) FormatLocaleString(buffer,MaxTextExtent,"%s\n",*s);
(void) WriteBlobString(image,buffer);
}
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
for (j=(ssize_t) MultilineCensus(value)-1; j >= 0; j--)
{
@@ -1710,7 +1710,7 @@
bounds.x2=(double) geometry.x+geometry.width-1;
if ((double) (geometry.y+(geometry.height+text_size)-1) > bounds.y2)
bounds.y2=(double) geometry.y+(geometry.height+text_size)-1;
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
(void) WriteBlobString(image,"%%%%PageResources: font Times-Roman\n");
if (LocaleCompare(image_info->magick,"PS") != 0)
@@ -1723,7 +1723,7 @@
(double) geometry.x,(double) geometry.y,scale.x,scale.y,pointsize);
(void) WriteBlobString(image,buffer);
labels=(char **) NULL;
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
labels=StringToList(value);
if (labels != (char **) NULL)
diff --git a/coders/ps2.c b/coders/ps2.c
index c005070..79c2dd5 100644
--- a/coders/ps2.c
+++ b/coders/ps2.c
@@ -549,7 +549,7 @@
if (image_info->pointsize != 0.0)
pointsize=image_info->pointsize;
text_size=0;
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
text_size=(size_t) (MultilineCensus(value)*pointsize+12);
if (page == 1)
@@ -591,7 +591,7 @@
bounds.y1,bounds.x2,bounds.y2);
}
(void) WriteBlobString(image,buffer);
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
(void) WriteBlobString(image,
"%%DocumentNeededResources: font Helvetica\n");
@@ -653,7 +653,7 @@
(void) WriteBlobString(image,buffer);
(void) WriteBlobByte(image,'\n');
}
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
for (j=(ssize_t) MultilineCensus(value)-1; j >= 0; j--)
{
@@ -689,7 +689,7 @@
bounds.x2=(double) geometry.x+geometry.width-1;
if ((double) (geometry.y+(geometry.height+text_size)-1) > bounds.y2)
bounds.y2=(double) geometry.y+(geometry.height+text_size)-1;
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
(void) WriteBlobString(image,"%%PageResources: font Times-Roman\n");
if (LocaleCompare(image_info->magick,"PS2") != 0)
@@ -708,7 +708,7 @@
(double) geometry.x,(double) geometry.y,scale.x,scale.y,pointsize);
(void) WriteBlobString(image,buffer);
labels=(char **) NULL;
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
labels=StringToList(value);
if (labels != (char **) NULL)
diff --git a/coders/ps3.c b/coders/ps3.c
index 3a813fd..659f8e0 100644
--- a/coders/ps3.c
+++ b/coders/ps3.c
@@ -981,7 +981,7 @@
if (image_info->pointsize != 0.0)
pointsize=image_info->pointsize;
text_size=0;
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
text_size=(size_t) (MultilineCensus(value)*pointsize+12);
page++;
@@ -1038,7 +1038,7 @@
/*
Font resources
*/
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
(void) WriteBlobString(image,
"%%DocumentNeededResources: font Helvetica\n");
@@ -1072,7 +1072,7 @@
/*
One label line for each line in label string.
*/
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
{
(void) WriteBlobString(image,"\n %% Labels.\n /Helvetica "
@@ -1130,7 +1130,7 @@
/*
Page font resource if there's a label.
*/
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
(void) WriteBlobString(image,"%%PageResources: font Helvetica\n");
/*
@@ -1144,7 +1144,8 @@
const char
*value;
- value=GetImageProperty(image,image->clip_mask->magick_filename);
+ value=GetImageProperty(image,image->clip_mask->magick_filename,
+ exception);
if (value == (const char *) NULL)
return(MagickFalse);
(void) WriteBlobString(image,value);
@@ -1184,7 +1185,7 @@
Output labels.
*/
labels=(char **) NULL;
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
labels=StringToList(value);
if (labels != (char **) NULL)
diff --git a/coders/psd.c b/coders/psd.c
index 68f2e7b..5742e9e 100644
--- a/coders/psd.c
+++ b/coders/psd.c
@@ -406,7 +406,7 @@
}
static MagickBooleanType ParseImageResourceBlocks(Image *image,
- const unsigned char *blocks,size_t length)
+ const unsigned char *blocks,size_t length,ExceptionInfo *exception)
{
const unsigned char
*p;
@@ -426,7 +426,7 @@
return(MagickFalse);
profile=BlobToStringInfo((const void *) NULL,length);
SetStringInfoDatum(profile,blocks);
- (void) SetImageProfile(image,"8bim",profile);
+ (void) SetImageProfile(image,"8bim",profile,exception);
profile=DestroyStringInfo(profile);
for (p=blocks; (p >= blocks) && (p < (blocks+length-16)); )
{
@@ -452,14 +452,14 @@
p=PushShortPixel(MSBEndian,p,&resolution);
image->x_resolution=(double) resolution;
(void) FormatLocaleString(value,MaxTextExtent,"%g",image->x_resolution);
- (void) SetImageProperty(image,"tiff:XResolution",value);
+ (void) SetImageProperty(image,"tiff:XResolution",value,exception);
p=PushShortPixel(MSBEndian,p,&short_sans);
p=PushShortPixel(MSBEndian,p,&short_sans);
p=PushShortPixel(MSBEndian,p,&short_sans);
p=PushShortPixel(MSBEndian,p,&resolution);
image->y_resolution=(double) resolution;
(void) FormatLocaleString(value,MaxTextExtent,"%g",image->y_resolution);
- (void) SetImageProperty(image,"tiff:YResolution",value);
+ (void) SetImageProperty(image,"tiff:YResolution",value,exception);
p=PushShortPixel(MSBEndian,p,&short_sans);
p=PushShortPixel(MSBEndian,p,&short_sans);
p=PushShortPixel(MSBEndian,p,&short_sans);
@@ -916,7 +916,8 @@
blocks=(unsigned char *) RelinquishMagickMemory(blocks);
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
}
- (void) ParseImageResourceBlocks(image,blocks,(size_t) length);
+ (void) ParseImageResourceBlocks(image,blocks,(size_t) length,
+ exception);
blocks=(unsigned char *) RelinquishMagickMemory(blocks);
}
/*
@@ -1233,7 +1234,7 @@
(void) SetImageArtifact(layer_info[i].image,"psd:layer.opacity",
message);
(void) SetImageProperty(layer_info[i].image,"label",(char *)
- layer_info[i].name);
+ layer_info[i].name,exception);
}
if (image->debug != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -2241,7 +2242,7 @@
channelLength=(size_t) (next_image->columns*next_image->rows*packet_size+2);
layer_info_size+=(size_t) (4*4+2+num_channels*6+(psd_info.version == 1 ? 8 :
16)+4*1+4+num_channels*channelLength);
- property=(const char *) GetImageProperty(next_image,"label");
+ property=(const char *) GetImageProperty(next_image,"label",exception);
if (property == (const char *) NULL)
layer_info_size+=16;
else
@@ -2338,7 +2339,7 @@
(void) WriteBlobByte(image,0);
(void) WriteBlobByte(image,1); /* layer propertys - visible, etc. */
(void) WriteBlobByte(image,0);
- property=(const char *) GetImageProperty(next_image,"label");
+ property=(const char *) GetImageProperty(next_image,"label",exception);
if (property == (const char *) NULL)
{
(void) WriteBlobMSBLong(image,16);
diff --git a/coders/rla.c b/coders/rla.c
index 8addb70..5e6951b 100644
--- a/coders/rla.c
+++ b/coders/rla.c
@@ -264,7 +264,7 @@
if (scanlines == (ssize_t *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (*rla_info.description != '\0')
- (void) SetImageProperty(image,"comment",rla_info.description);
+ (void) SetImageProperty(image,"comment",rla_info.description,exception);
/*
Read offsets to each scanline data.
*/
diff --git a/coders/rle.c b/coders/rle.c
index 8111105..20f2ac3e 100644
--- a/coders/rle.c
+++ b/coders/rle.c
@@ -275,7 +275,7 @@
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
count=ReadBlob(image,length-1,(unsigned char *) comment);
comment[length-1]='\0';
- (void) SetImageProperty(image,"comment",comment);
+ (void) SetImageProperty(image,"comment",comment,exception);
comment=DestroyString(comment);
if ((length & 0x01) == 0)
(void) ReadBlobByte(image);
diff --git a/coders/sgi.c b/coders/sgi.c
index 50445f7..ed4bc26 100644
--- a/coders/sgi.c
+++ b/coders/sgi.c
@@ -348,7 +348,7 @@
iris_info.name);
iris_info.name[sizeof(iris_info.name)-1]='\0';
if (*iris_info.name != '\0')
- (void) SetImageProperty(image,"label",iris_info.name);
+ (void) SetImageProperty(image,"label",iris_info.name,exception);
iris_info.pixel_format=ReadBlobMSBLong(image);
if (iris_info.pixel_format != 0)
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
@@ -954,7 +954,7 @@
(void) WriteBlobMSBLong(image,(unsigned int) iris_info.minimum_value);
(void) WriteBlobMSBLong(image,(unsigned int) iris_info.maximum_value);
(void) WriteBlobMSBLong(image,(unsigned int) iris_info.sans);
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(iris_info.name,value,sizeof(iris_info.name));
(void) WriteBlob(image,sizeof(iris_info.name),(unsigned char *)
diff --git a/coders/svg.c b/coders/svg.c
index 6bff30f..bedbf05 100644
--- a/coders/svg.c
+++ b/coders/svg.c
@@ -2863,10 +2863,11 @@
#endif
image->matte=MagickTrue;
SetImageProperty(image,"svg:base-uri",
- rsvg_handle_get_base_uri(svg_handle));
- SetImageProperty(image,"svg:title",rsvg_handle_get_title(svg_handle));
+ rsvg_handle_get_base_uri(svg_handle),exception);
+ SetImageProperty(image,"svg:title",rsvg_handle_get_title(svg_handle),
+ exception);
SetImageProperty(image,"svg:description",
- rsvg_handle_get_desc(svg_handle));
+ rsvg_handle_get_desc(svg_handle),exception);
if ((image->columns == 0) || (image->rows == 0))
{
#if !defined(MAGICKCORE_CAIRO_DELEGATE)
@@ -3079,9 +3080,10 @@
if (image != (Image *) NULL)
{
if (svg_info->title != (char *) NULL)
- (void) SetImageProperty(image,"svg:title",svg_info->title);
+ (void) SetImageProperty(image,"svg:title",svg_info->title,exception);
if (svg_info->comment != (char *) NULL)
- (void) SetImageProperty(image,"svg:comment",svg_info->comment);
+ (void) SetImageProperty(image,"svg:comment",svg_info->comment,
+ exception);
}
svg_info=DestroySVGInfo(svg_info);
(void) RelinquishUniqueFileResource(filename);
diff --git a/coders/tga.c b/coders/tga.c
index e5d1a83..8187ec8 100644
--- a/coders/tga.c
+++ b/coders/tga.c
@@ -278,7 +278,7 @@
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
count=ReadBlob(image,tga_info.id_length,(unsigned char *) comment);
comment[tga_info.id_length]='\0';
- (void) SetImageProperty(image,"comment",comment);
+ (void) SetImageProperty(image,"comment",comment,exception);
comment=DestroyString(comment);
}
(void) ResetMagickMemory(&pixel,0,sizeof(pixel));
@@ -682,7 +682,7 @@
if (IsRGBColorspace(image->colorspace) == MagickFalse)
(void) TransformImageColorspace(image,RGBColorspace);
targa_info.id_length=0;
- value=GetImageProperty(image,"comment");
+ value=GetImageProperty(image,"comment",exception);
if (value != (const char *) NULL)
targa_info.id_length=(unsigned char) MagickMin(strlen(value),255);
targa_info.colormap_type=0;
diff --git a/coders/thumbnail.c b/coders/thumbnail.c
index 2037dc5..7e549bd 100644
--- a/coders/thumbnail.c
+++ b/coders/thumbnail.c
@@ -183,11 +183,11 @@
profile=GetImageProfile(image,"exif");
if (profile == (const StringInfo *) NULL)
ThrowWriterException(CoderError,"ImageDoesNotHaveAThumbnail");
- property=GetImageProperty(image,"exif:JPEGInterchangeFormat");
+ property=GetImageProperty(image,"exif:JPEGInterchangeFormat",exception);
if (property == (const char *) NULL)
ThrowWriterException(CoderError,"ImageDoesNotHaveAThumbnail");
offset=(ssize_t) StringToLong(property);
- property=GetImageProperty(image,"exif:JPEGInterchangeFormatLength");
+ property=GetImageProperty(image,"exif:JPEGInterchangeFormatLength",exception);
if (property == (const char *) NULL)
ThrowWriterException(CoderError,"ImageDoesNotHaveAThumbnail");
length=(size_t) StringToLong(property);
diff --git a/coders/tiff.c b/coders/tiff.c
index 464485e..27a0eaf 100644
--- a/coders/tiff.c
+++ b/coders/tiff.c
@@ -469,7 +469,7 @@
if (profile == (StringInfo *) NULL)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
image->filename);
- status=SetImageProfile(image,name,profile);
+ status=SetImageProfile(image,name,profile,exception);
profile=DestroyStringInfo(profile);
if (status == MagickFalse)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
@@ -544,7 +544,7 @@
(void) ReadProfile(image,"tiff:37724",profile,(ssize_t) length,exception);
}
-static void TIFFGetProperties(TIFF *tiff,Image *image)
+static void TIFFGetProperties(TIFF *tiff,Image *image,ExceptionInfo *exception)
{
char
message[MaxTextExtent],
@@ -554,49 +554,50 @@
count;
if (TIFFGetField(tiff,TIFFTAG_ARTIST,&text) == 1)
- (void) SetImageProperty(image,"tiff:artist",text);
+ (void) SetImageProperty(image,"tiff:artist",text,exception);
if (TIFFGetField(tiff,TIFFTAG_COPYRIGHT,&text) == 1)
- (void) SetImageProperty(image,"tiff:copyright",text);
+ (void) SetImageProperty(image,"tiff:copyright",text,exception);
if (TIFFGetField(tiff,TIFFTAG_DATETIME,&text) == 1)
- (void) SetImageProperty(image,"tiff:timestamp",text);
+ (void) SetImageProperty(image,"tiff:timestamp",text,exception);
if (TIFFGetField(tiff,TIFFTAG_DOCUMENTNAME,&text) == 1)
- (void) SetImageProperty(image,"tiff:document",text);
+ (void) SetImageProperty(image,"tiff:document",text,exception);
if (TIFFGetField(tiff,TIFFTAG_HOSTCOMPUTER,&text) == 1)
- (void) SetImageProperty(image,"tiff:hostcomputer",text);
+ (void) SetImageProperty(image,"tiff:hostcomputer",text,exception);
if (TIFFGetField(tiff,TIFFTAG_IMAGEDESCRIPTION,&text) == 1)
- (void) SetImageProperty(image,"comment",text);
+ (void) SetImageProperty(image,"comment",text,exception);
if (TIFFGetField(tiff,TIFFTAG_MAKE,&text) == 1)
- (void) SetImageProperty(image,"tiff:make",text);
+ (void) SetImageProperty(image,"tiff:make",text,exception);
if (TIFFGetField(tiff,TIFFTAG_MODEL,&text) == 1)
- (void) SetImageProperty(image,"tiff:model",text);
+ (void) SetImageProperty(image,"tiff:model",text,exception);
if (TIFFGetField(tiff,TIFFTAG_OPIIMAGEID,&count,&text) == 1)
{
if (count >= MaxTextExtent)
count=MaxTextExtent-1;
(void) CopyMagickString(message,text,count+1);
- (void) SetImageProperty(image,"tiff:image-id",message);
+ (void) SetImageProperty(image,"tiff:image-id",message,exception);
}
if (TIFFGetField(tiff,TIFFTAG_PAGENAME,&text) == 1)
- (void) SetImageProperty(image,"label",text);
+ (void) SetImageProperty(image,"label",text,exception);
if (TIFFGetField(tiff,TIFFTAG_SOFTWARE,&text) == 1)
- (void) SetImageProperty(image,"tiff:software",text);
+ (void) SetImageProperty(image,"tiff:software",text,exception);
if (TIFFGetField(tiff,33423,&count,&text) == 1)
{
if (count >= MaxTextExtent)
count=MaxTextExtent-1;
(void) CopyMagickString(message,text,count+1);
- (void) SetImageProperty(image,"tiff:kodak-33423",message);
+ (void) SetImageProperty(image,"tiff:kodak-33423",message,exception);
}
if (TIFFGetField(tiff,36867,&count,&text) == 1)
{
if (count >= MaxTextExtent)
count=MaxTextExtent-1;
(void) CopyMagickString(message,text,count+1);
- (void) SetImageProperty(image,"tiff:kodak-36867",message);
+ (void) SetImageProperty(image,"tiff:kodak-36867",message,exception);
}
}
-static void TIFFGetEXIFProperties(TIFF *tiff,Image *image)
+static void TIFFGetEXIFProperties(TIFF *tiff,Image *image,
+ ExceptionInfo *exception)
{
#if defined(MAGICKCORE_HAVE_TIFFREADEXIFDIRECTORY)
char
@@ -673,7 +674,7 @@
break;
}
if (*value != '\0')
- (void) SetImageProperty(image,exif_info[i].property,value);
+ (void) SetImageProperty(image,exif_info[i].property,value,exception);
}
TIFFSetDirectory(tiff,directory);
#else
@@ -903,11 +904,11 @@
{
if (0 && (image_info->verbose != MagickFalse))
TIFFPrintDirectory(tiff,stdout,MagickFalse);
- TIFFGetEXIFProperties(tiff,image);
+ TIFFGetEXIFProperties(tiff,image,exception);
TIFFGetProfiles(tiff,image,exception);
- TIFFGetProperties(tiff,image);
+ TIFFGetProperties(tiff,image,exception);
(void) SetImageProperty(image,"tiff:endian",TIFFIsBigEndian(tiff) == 0 ?
- "lsb" : "msb");
+ "lsb" : "msb",exception);
(void) TIFFGetFieldDefaulted(tiff,TIFFTAG_COMPRESSION,&compress_tag);
(void) TIFFGetFieldDefaulted(tiff,TIFFTAG_ORIENTATION,&orientation);
(void) TIFFGetFieldDefaulted(tiff,TIFFTAG_IMAGEWIDTH,&width);
@@ -917,7 +918,8 @@
(void) TIFFGetFieldDefaulted(tiff,TIFFTAG_BITSPERSAMPLE,&bits_per_sample);
(void) TIFFGetFieldDefaulted(tiff,TIFFTAG_SAMPLEFORMAT,&sample_format);
if (sample_format == SAMPLEFORMAT_IEEEFP)
- (void) SetImageProperty(image,"quantum:format","floating-point");
+ (void) SetImageProperty(image,"quantum:format","floating-point",
+ exception);
(void) TIFFGetFieldDefaulted(tiff,TIFFTAG_MINSAMPLEVALUE,&min_sample_value);
(void) TIFFGetFieldDefaulted(tiff,TIFFTAG_MAXSAMPLEVALUE,&max_sample_value);
(void) TIFFGetFieldDefaulted(tiff,TIFFTAG_PHOTOMETRIC,&photometric);
@@ -925,42 +927,44 @@
{
case PHOTOMETRIC_MINISBLACK:
{
- (void) SetImageProperty(image,"tiff:photometric","min-is-black");
+ (void) SetImageProperty(image,"tiff:photometric","min-is-black",
+ exception);
break;
}
case PHOTOMETRIC_MINISWHITE:
{
- (void) SetImageProperty(image,"tiff:photometric","min-is-white");
+ (void) SetImageProperty(image,"tiff:photometric","min-is-white",
+ exception);
break;
}
case PHOTOMETRIC_PALETTE:
{
- (void) SetImageProperty(image,"tiff:photometric","palette");
+ (void) SetImageProperty(image,"tiff:photometric","palette",exception);
break;
}
case PHOTOMETRIC_RGB:
{
- (void) SetImageProperty(image,"tiff:photometric","RGB");
+ (void) SetImageProperty(image,"tiff:photometric","RGB",exception);
break;
}
case PHOTOMETRIC_CIELAB:
{
- (void) SetImageProperty(image,"tiff:photometric","CIELAB");
+ (void) SetImageProperty(image,"tiff:photometric","CIELAB",exception);
break;
}
case PHOTOMETRIC_SEPARATED:
{
- (void) SetImageProperty(image,"tiff:photometric","separated");
+ (void) SetImageProperty(image,"tiff:photometric","separated",exception);
break;
}
case PHOTOMETRIC_YCBCR:
{
- (void) SetImageProperty(image,"tiff:photometric","YCBCR");
+ (void) SetImageProperty(image,"tiff:photometric","YCBCR",exception);
break;
}
default:
{
- (void) SetImageProperty(image,"tiff:photometric","unknown");
+ (void) SetImageProperty(image,"tiff:photometric","unknown",exception);
break;
}
}
@@ -977,7 +981,8 @@
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
"Max sample value: %u",max_sample_value);
(void) LogMagickEvent(CoderEvent,GetMagickModule(),"Photometric "
- "interpretation: %s",GetImageProperty(image,"tiff:photometric"));
+ "interpretation: %s",GetImageProperty(image,"tiff:photometric",
+ exception));
}
image->columns=(size_t) width;
image->rows=(size_t) height;
@@ -1060,7 +1065,7 @@
(void) FormatLocaleString(sampling_factor,MaxTextExtent,"%dx%d",
horizontal,vertical);
(void) SetImageProperty(image,"jpeg:sampling-factor",
- sampling_factor);
+ sampling_factor,exception);
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
"Sampling Factors: %s",sampling_factor);
if ((samples_per_pixel > 1) && (photometric == PHOTOMETRIC_YCBCR))
@@ -1137,7 +1142,8 @@
MagickFalse;
if (image->matte != MagickFalse)
(void) SetImageProperty(image,"tiff:alpha",
- associated_alpha != MagickFalse ? "associated" : "unassociated");
+ associated_alpha != MagickFalse ? "associated" : "unassociated",
+ exception);
if ((photometric == PHOTOMETRIC_PALETTE) &&
(pow(2.0,1.0*bits_per_sample) <= MaxColormapSize))
{
@@ -1174,7 +1180,7 @@
method=ReadStripMethod;
(void) FormatLocaleString(value,MaxTextExtent,"%u",
(unsigned int) rows_per_strip);
- (void) SetImageProperty(image,"tiff:rows-per-strip",value);
+ (void) SetImageProperty(image,"tiff:rows-per-strip",value,exception);
}
if ((samples_per_pixel >= 2) && (interlace == PLANARCONFIG_CONTIG))
method=ReadRGBAMethod;
@@ -2341,48 +2347,49 @@
}
}
-static void TIFFSetProperties(TIFF *tiff,Image *image)
+static void TIFFSetProperties(TIFF *tiff,Image *image,ExceptionInfo *exception)
{
const char
*value;
(void) TIFFSetField(tiff,TIFFTAG_DOCUMENTNAME,image->filename);
- value=GetImageProperty(image,"tiff:hostcomputer");
+ value=GetImageProperty(image,"tiff:hostcomputer",exception);
if (value != (const char *) NULL)
(void) TIFFSetField(tiff,TIFFTAG_HOSTCOMPUTER,value);
- value=GetImageProperty(image,"tiff:artist");
+ value=GetImageProperty(image,"tiff:artist",exception);
if (value != (const char *) NULL)
(void) TIFFSetField(tiff,TIFFTAG_ARTIST,value);
- value=GetImageProperty(image,"tiff:timestamp");
+ value=GetImageProperty(image,"tiff:timestamp",exception);
if (value != (const char *) NULL)
(void) TIFFSetField(tiff,TIFFTAG_DATETIME,value);
- value=GetImageProperty(image,"tiff:make");
+ value=GetImageProperty(image,"tiff:make",exception);
if (value != (const char *) NULL)
(void) TIFFSetField(tiff,TIFFTAG_MAKE,value);
- value=GetImageProperty(image,"tiff:model");
+ value=GetImageProperty(image,"tiff:model",exception);
if (value != (const char *) NULL)
(void) TIFFSetField(tiff,TIFFTAG_MODEL,value);
- value=GetImageProperty(image,"tiff:software");
+ value=GetImageProperty(image,"tiff:software",exception);
if (value != (const char *) NULL)
(void) TIFFSetField(tiff,TIFFTAG_SOFTWARE,value);
- value=GetImageProperty(image,"tiff:copyright");
+ value=GetImageProperty(image,"tiff:copyright",exception);
if (value != (const char *) NULL)
(void) TIFFSetField(tiff,TIFFTAG_COPYRIGHT,value);
- value=GetImageProperty(image,"kodak-33423");
+ value=GetImageProperty(image,"kodak-33423",exception);
if (value != (const char *) NULL)
(void) TIFFSetField(tiff,33423,value);
- value=GetImageProperty(image,"kodak-36867");
+ value=GetImageProperty(image,"kodak-36867",exception);
if (value != (const char *) NULL)
(void) TIFFSetField(tiff,36867,value);
- value=GetImageProperty(image,"label");
+ value=GetImageProperty(image,"label",exception);
if (value != (const char *) NULL)
(void) TIFFSetField(tiff,TIFFTAG_PAGENAME,value);
- value=GetImageProperty(image,"comment");
+ value=GetImageProperty(image,"comment",exception);
if (value != (const char *) NULL)
(void) TIFFSetField(tiff,TIFFTAG_IMAGEDESCRIPTION,value);
}
-static void TIFFSetEXIFProperties(TIFF *tiff,Image *image)
+static void TIFFSetEXIFProperties(TIFF *tiff,Image *image,
+ ExceptionInfo *exception)
{
#if defined(MAGICKCORE_HAVE_TIFFREADEXIFDIRECTORY)
const char
@@ -2401,7 +2408,7 @@
(void) TIFFSetField(tiff,TIFFTAG_SUBIFD,1,&offset);
for (i=0; exif_info[i].tag != 0; i++)
{
- value=GetImageProperty(image,exif_info[i].property);
+ value=GetImageProperty(image,exif_info[i].property,exception);
if (value == (const char *) NULL)
continue;
switch (exif_info[i].type)
@@ -2818,7 +2825,7 @@
compress_tag=COMPRESSION_NONE;
endian=FILLORDER_MSB2LSB;
}
- option=GetImageProperty(image,"tiff:fill-order");
+ option=GetImageProperty(image,"tiff:fill-order",exception);
if (option != (const char *) NULL)
{
if (LocaleNCompare(option,"msb",3) == 0)
@@ -2841,7 +2848,7 @@
*/
extra_samples=1;
sample_info[0]=EXTRASAMPLE_UNASSALPHA;
- option=GetImageProperty(image,"tiff:alpha");
+ option=GetImageProperty(image,"tiff:alpha",exception);
if ((option != (const char *) NULL) &&
(LocaleCompare(option,"associated") == 0))
sample_info[0]=EXTRASAMPLE_ASSOCALPHA;
@@ -2916,7 +2923,7 @@
(void) TIFFSetField(tiff,TIFFTAG_JPEGCOLORMODE,JPEGCOLORMODE_RGB);
sampling_factor=(const char *) NULL;
- value=GetImageProperty(image,"jpeg:sampling-factor");
+ value=GetImageProperty(image,"jpeg:sampling-factor",exception);
if (value != (char *) NULL)
{
sampling_factor=value;
@@ -3065,9 +3072,9 @@
(void) TIFFSetField(tiff,TIFFTAG_SUBFILETYPE,FILETYPE_PAGE);
(void) TIFFSetField(tiff,TIFFTAG_PAGENUMBER,page,pages);
}
- (void) TIFFSetProperties(tiff,image);
+ (void) TIFFSetProperties(tiff,image,exception);
if (0)
- (void) TIFFSetEXIFProperties(tiff,image);
+ (void) TIFFSetEXIFProperties(tiff,image,exception);
/*
Write image scanlines.
*/
diff --git a/coders/vid.c b/coders/vid.c
index f4ba630..c6dc90d 100644
--- a/coders/vid.c
+++ b/coders/vid.c
@@ -172,7 +172,7 @@
break;
label=InterpretImageProperties(image_info,next_image,DefaultTileLabel,
exception);
- (void) SetImageProperty(next_image,"label",label);
+ (void) SetImageProperty(next_image,"label",label,exception);
label=DestroyString(label);
if (image_info->debug != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -326,7 +326,7 @@
Create the visual image directory.
*/
for (p=image; p != (Image *) NULL; p=GetNextImageInList(p))
- (void) SetImageProperty(p,"label",DefaultTileLabel);
+ (void) SetImageProperty(p,"label",DefaultTileLabel,exception);
montage_info=CloneMontageInfo(image_info,(MontageInfo *) NULL);
montage_image=MontageImageList(image_info,montage_info,image,exception);
montage_info=DestroyMontageInfo(montage_info);
diff --git a/coders/viff.c b/coders/viff.c
index 5d2c579..aaba9f6 100644
--- a/coders/viff.c
+++ b/coders/viff.c
@@ -290,7 +290,7 @@
count=ReadBlob(image,512,(unsigned char *) viff_info.comment);
viff_info.comment[511]='\0';
if (strlen(viff_info.comment) > 4)
- (void) SetImageProperty(image,"comment",viff_info.comment);
+ (void) SetImageProperty(image,"comment",viff_info.comment,exception);
if ((viff_info.machine_dependency == VFF_DEP_DECORDER) ||
(viff_info.machine_dependency == VFF_DEP_NSORDER))
{
@@ -984,7 +984,7 @@
viff_info.version=3;
viff_info.machine_dependency=VFF_DEP_IEEEORDER; /* IEEE byte ordering */
*viff_info.comment='\0';
- value=GetImageProperty(image,"comment");
+ value=GetImageProperty(image,"comment",exception);
if (value != (const char *) NULL)
(void) CopyMagickString(viff_info.comment,value,MagickMin(strlen(value),
511)+1);
diff --git a/coders/xwd.c b/coders/xwd.c
index c5a3bd5..38b21fb 100644
--- a/coders/xwd.c
+++ b/coders/xwd.c
@@ -244,7 +244,7 @@
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
count=ReadBlob(image,length,(unsigned char *) comment);
comment[length]='\0';
- (void) SetImageProperty(image,"comment",comment);
+ (void) SetImageProperty(image,"comment",comment,exception);
comment=DestroyString(comment);
if (count != (ssize_t) length)
ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile");
@@ -656,7 +656,7 @@
*/
(void) ResetMagickMemory(&xwd_info,0,sizeof(xwd_info));
xwd_info.header_size=(CARD32) sz_XWDheader;
- value=GetImageProperty(image,"comment");
+ value=GetImageProperty(image,"comment",exception);
if (value != (const char *) NULL)
xwd_info.header_size+=(CARD32) strlen(value);
xwd_info.header_size++;