% July 1992 %
% %
% %
-% Copyright 1999-2010 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
/*
Include declarations.
*/
-#include "magick/studio.h"
-#include "magick/blob.h"
-#include "magick/blob-private.h"
-#include "magick/color-private.h"
-#include "magick/colorspace.h"
-#include "magick/constitute.h"
-#include "magick/exception.h"
-#include "magick/exception-private.h"
-#include "magick/geometry.h"
-#include "magick/list.h"
-#include "magick/magick.h"
-#include "magick/memory_.h"
-#include "magick/paint.h"
-#include "magick/property.h"
-#include "magick/quantum-private.h"
-#include "magick/static.h"
-#include "magick/string_.h"
-#include "magick/module.h"
-#include "magick/utility.h"
+#include "MagickCore/studio.h"
+#include "MagickCore/blob.h"
+#include "MagickCore/blob-private.h"
+#include "MagickCore/color-private.h"
+#include "MagickCore/colorspace.h"
+#include "MagickCore/colorspace-private.h"
+#include "MagickCore/constitute.h"
+#include "MagickCore/exception.h"
+#include "MagickCore/exception-private.h"
+#include "MagickCore/geometry.h"
+#include "MagickCore/list.h"
+#include "MagickCore/magick.h"
+#include "MagickCore/memory_.h"
+#include "MagickCore/paint.h"
+#include "MagickCore/property.h"
+#include "MagickCore/quantum-private.h"
+#include "MagickCore/static.h"
+#include "MagickCore/string_.h"
+#include "MagickCore/module.h"
+#include "MagickCore/utility.h"
\f
/*
Forward declarations.
*/
static MagickBooleanType
- WriteHTMLImage(const ImageInfo *,Image *);
+ WriteHTMLImage(const ImageInfo *,Image *,ExceptionInfo *);
\f
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The format of the RegisterHTMLImage method is:
%
-% unsigned long RegisterHTMLImage(void)
+% size_t RegisterHTMLImage(void)
%
*/
-ModuleExport unsigned long RegisterHTMLImage(void)
+ModuleExport size_t RegisterHTMLImage(void)
{
MagickInfo
*entry;
%
% The format of the WriteHTMLImage method is:
%
-% MagickBooleanType WriteHTMLImage(const ImageInfo *image_info,Image *image)
+% MagickBooleanType WriteHTMLImage(const ImageInfo *image_info,
+% Image *image,ExceptionInfo *exception)
%
% A description of each parameter follows.
%
%
% o image: The image.
%
+% o exception: return any errors or warnings in this structure.
%
*/
static MagickBooleanType WriteHTMLImage(const ImageInfo *image_info,
- Image *image)
+ Image *image,ExceptionInfo *exception)
{
char
basename[MaxTextExtent],
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",
image_info->filename);
- status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
+ assert(exception != (ExceptionInfo *) NULL);
+ assert(exception->signature == MagickSignature);
+ status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
if (status == MagickFalse)
return(status);
(void) CloseBlob(image);
- if (image->colorspace != RGBColorspace)
- (void) TransformImageColorspace(image,RGBColorspace);
+ if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse)
+ (void) TransformImageColorspace(image,sRGBColorspace,exception);
*url='\0';
if ((LocaleCompare(image_info->magick,"FTP") == 0) ||
(LocaleCompare(image_info->magick,"HTTP") == 0))
Extract URL base from filename.
*/
p=strrchr(image->filename,'/');
- if (p)
+ if (p != (char *) NULL)
{
p++;
(void) CopyMagickString(url,image_info->magick,MaxTextExtent);
/*
Open output image file.
*/
- status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
+ assert(exception != (ExceptionInfo *) NULL);
+ status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
if (status == MagickFalse)
return(status);
/*
"\"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) FormatMagickString(buffer,MaxTextExtent,"<title>%s</title>\n",
+ (void) FormatLocaleString(buffer,MaxTextExtent,"<title>%s</title>\n",
value);
else
{
GetPathComponent(filename,BasePath,basename);
- (void) FormatMagickString(buffer,MaxTextExtent,
+ (void) FormatLocaleString(buffer,MaxTextExtent,
"<title>%s</title>\n",basename);
}
(void) WriteBlobString(image,buffer);
(void) WriteBlobString(image,"</head>\n");
(void) WriteBlobString(image,"<body style=\"text-align: center;\">\n");
- (void) FormatMagickString(buffer,MaxTextExtent,"<h1>%s</h1>\n",
+ (void) FormatLocaleString(buffer,MaxTextExtent,"<h1>%s</h1>\n",
image->filename);
(void) WriteBlobString(image,buffer);
(void) WriteBlobString(image,"<div>\n");
(void) CopyMagickString(filename,image->filename,MaxTextExtent);
AppendImageFormat("png",filename);
- (void) FormatMagickString(buffer,MaxTextExtent,"<img usemap=\"#%s\" "
+ (void) FormatLocaleString(buffer,MaxTextExtent,"<img usemap=\"#%s\" "
"src=\"%s\" style=\"border: 0;\" alt=\"Image map\" />\n",mapname,
filename);
(void) WriteBlobString(image,buffer);
/*
Write an image map.
*/
- (void) FormatMagickString(buffer,MaxTextExtent,
+ (void) FormatLocaleString(buffer,MaxTextExtent,
"<map id=\"%s\" name=\"%s\">\n",mapname,mapname);
(void) WriteBlobString(image,buffer);
- (void) FormatMagickString(buffer,MaxTextExtent," <area href=\"%s",
- url);
+ (void) FormatLocaleString(buffer,MaxTextExtent," <area href=\"%s",url);
(void) WriteBlobString(image,buffer);
if (image->directory == (char *) NULL)
{
- (void) FormatMagickString(buffer,MaxTextExtent,
- "%s\" shape=\"rect\" coords=\"0,0,%lu,%lu\" alt=\"\" />\n",
- image->filename,geometry.width-1,geometry.height-1);
+ (void) FormatLocaleString(buffer,MaxTextExtent,
+ "%s\" shape=\"rect\" coords=\"0,0,%.20g,%.20g\" alt=\"\" />\n",
+ image->filename,(double) geometry.width-1,(double) geometry.height-
+ 1);
(void) WriteBlobString(image,buffer);
}
else
(void) WriteBlobByte(image,(unsigned char) *p);
else
{
- (void) FormatMagickString(buffer,MaxTextExtent,
- "\" shape=\"rect\" coords=\"%ld,%ld,%ld,%ld\" alt=\"\" />\n",
- geometry.x,geometry.y,geometry.x+(long) geometry.width-1,
- geometry.y+(long) geometry.height-1);
+ (void) FormatLocaleString(buffer,MaxTextExtent,"\" shape="
+ "\"rect\" coords=\"%.20g,%.20g,%.20g,%.20g\" alt=\"\" />\n",
+ (double) geometry.x,(double) geometry.y,(double) (geometry.x+
+ geometry.width-1),(double) (geometry.y+geometry.height-1));
(void) WriteBlobString(image,buffer);
if (*(p+1) != '\0')
{
- (void) FormatMagickString(buffer,MaxTextExtent,
+ (void) FormatLocaleString(buffer,MaxTextExtent,
" <area href=%s\"",url);
(void) WriteBlobString(image,buffer);
}
- geometry.x+=geometry.width;
- if ((geometry.x+4) >= (long) image->columns)
+ geometry.x+=(ssize_t) geometry.width;
+ if ((geometry.x+4) >= (ssize_t) image->columns)
{
geometry.x=0;
- geometry.y+=geometry.height;
+ geometry.y+=(ssize_t) geometry.height;
}
}
(void) WriteBlobString(image,"</map>\n");
next=GetNextImageInList(image);
image->next=NewImageList();
(void) CopyMagickString(image->magick,"PNG",MaxTextExtent);
- (void) WriteImage(write_info,image);
+ (void) WriteImage(write_info,image,exception);
image->next=next;
/*
Determine image map filename.
/*
Open image map.
*/
- status=OpenBlob(write_info,image,WriteBinaryBlobMode,&image->exception);
+ status=OpenBlob(write_info,image,WriteBinaryBlobMode,exception);
if (status == MagickFalse)
return(status);
write_info=DestroyImageInfo(write_info);
/*
Write an image map.
*/
- (void) FormatMagickString(buffer,MaxTextExtent,
+ (void) FormatLocaleString(buffer,MaxTextExtent,
"<map id=\"%s\" name=\"%s\">\n",mapname,mapname);
(void) WriteBlobString(image,buffer);
- (void) FormatMagickString(buffer,MaxTextExtent," <area href=\"%s",url);
+ (void) FormatLocaleString(buffer,MaxTextExtent," <area href=\"%s",url);
(void) WriteBlobString(image,buffer);
if (image->directory == (char *) NULL)
{
- (void) FormatMagickString(buffer,MaxTextExtent,
- "%s\" shape=\"rect\" coords=\"0,0,%lu,%lu\" alt=\"\" />\n",
- image->filename,geometry.width-1,geometry.height-1);
+ (void) FormatLocaleString(buffer,MaxTextExtent,
+ "%s\" shape=\"rect\" coords=\"0,0,%.20g,%.20g\" alt=\"\" />\n",
+ image->filename,(double) geometry.width-1,(double) geometry.height-1);
(void) WriteBlobString(image,buffer);
}
else
(void) WriteBlobByte(image,(unsigned char) *p);
else
{
- (void) FormatMagickString(buffer,MaxTextExtent,
- "\" shape=\"rect\" coords=\"%ld,%ld,%ld,%ld\" alt=\"\" />\n",
- geometry.x,geometry.y,geometry.x+(long) geometry.width-1,
- geometry.y+(long) geometry.height-1);
+ (void) FormatLocaleString(buffer,MaxTextExtent,"\" shape=\"rect\""
+ " coords=\"%.20g,%.20g,%.20g,%.20g\" alt=\"\" />\n",
+ (double) geometry.x,(double) geometry.y,geometry.x+(double)
+ geometry.width-1,geometry.y+(double) geometry.height-1);
(void) WriteBlobString(image,buffer);
if (*(p+1) != '\0')
{
- (void) FormatMagickString(buffer,MaxTextExtent,
+ (void) FormatLocaleString(buffer,MaxTextExtent,
" <area href=%s\"",url);
(void) WriteBlobString(image,buffer);
}
- geometry.x+=geometry.width;
- if ((geometry.x+4) >= (long) image->columns)
+ geometry.x+=(ssize_t) geometry.width;
+ if ((geometry.x+4) >= (ssize_t) image->columns)
{
geometry.x=0;
- geometry.y+=geometry.height;
+ geometry.y+=(ssize_t) geometry.height;
}
}
(void) WriteBlobString(image,"</map>\n");