diff --git a/coders/inline.c b/coders/inline.c
index ed62996..0a0e735 100644
--- a/coders/inline.c
+++ b/coders/inline.c
@@ -267,6 +267,9 @@
const MagickInfo
*magick_info;
+ Image
+ *write_image;
+
ImageInfo
*write_info;
@@ -289,8 +292,29 @@
assert(image->signature == MagickSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
+ /*
+ Write base64-encoded image.
+ */
+ write_info=CloneImageInfo(image_info);
+ (void) SetImageInfo(write_info,1,exception);
+ if (LocaleCompare(write_info->magick,"INLINE") == 0)
+ (void) CopyMagickString(write_info->magick,image->magick,MaxTextExtent);
+ magick_info=GetMagickInfo(write_info->magick,exception);
+ if ((magick_info == (const MagickInfo *) NULL) ||
+ (GetMagickMimeType(magick_info) == (const char *) NULL))
+ ThrowWriterException(CorruptImageError,"ImageTypeNotSupported");
+ (void) CopyMagickString(image->filename,write_info->filename,MaxTextExtent);
blob_length=2048;
- blob=(unsigned char *) ImageToBlob(image_info,image,&blob_length,exception);
+ write_image=CloneImage(image,0,0,MagickTrue,exception);
+ if (write_image == (Image *) NULL)
+ {
+ write_info=DestroyImageInfo(write_info);
+ return(MagickTrue);
+ }
+ blob=(unsigned char *) ImageToBlob(write_info,write_image,&blob_length,
+ exception);
+ write_image=DestroyImage(write_image);
+ write_info=DestroyImageInfo(write_info);
if (blob == (unsigned char *) NULL)
return(MagickFalse);
encode_length=0;
@@ -298,26 +322,9 @@
blob=(unsigned char *) RelinquishMagickMemory(blob);
if (base64 == (char *) NULL)
ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
- write_info=CloneImageInfo(image_info);
- /*
- Write base64-encoded image.
- */
- (void) SetImageInfo(write_info,1,exception);
- (void) CopyMagickString(image->filename,write_info->filename,MaxTextExtent);
status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
- write_info=DestroyImageInfo(write_info);
if (status == MagickFalse)
- {
- base64=DestroyString(base64);
- return(status);
- }
- magick_info=GetMagickInfo(image->magick,exception);
- if ((magick_info == (const MagickInfo *) NULL) ||
- (GetMagickMimeType(magick_info) == (const char *) NULL))
- {
- base64=DestroyString(base64);
- ThrowWriterException(CorruptImageError,"ImageTypeNotSupported");
- }
+ return(status);
(void) FormatLocaleString(message,MaxTextExtent,"data:%s;base64,",
GetMagickMimeType(magick_info));
(void) WriteBlobString(image,message);
diff --git a/tests/validate.h b/tests/validate.h
index 4c4fff0..707fe53 100644
--- a/tests/validate.h
+++ b/tests/validate.h
@@ -266,7 +266,6 @@
{ "ICO", UndefinedCompression, 0.0 },
{ "ICON", UndefinedCompression, 0.0 },
{ "INFO", UndefinedCompression, 0.0 },
- { "INLINE", UndefinedCompression, 0.0 },
{ "JBG", UndefinedCompression, 0.0 },
{ "JNG", UndefinedCompression, 0.004 },
{ "JNG", JPEGCompression, 0.004 },