% July 1992 %
% %
% %
-% Copyright 1999-2011 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 "MagickCore/studio.h"
+#include "MagickCore/artifact.h"
#include "MagickCore/blob.h"
#include "MagickCore/blob-private.h"
#include "MagickCore/cache.h"
#include "MagickCore/memory_.h"
#include "MagickCore/monitor.h"
#include "MagickCore/monitor-private.h"
-#include "MagickCore/nt-feature.h"
+#include "MagickCore/nt-base-private.h"
#include "MagickCore/pixel-accessor.h"
#include "MagickCore/quantize.h"
#include "MagickCore/quantum-private.h"
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
}
if (image_info->ping == MagickFalse)
- (void) SyncImage(image);
+ (void) SyncImage(image,exception);
if (icon_info.bits_per_pixel != 32)
{
/*
next=image;
do
{
- if (next->compression == ZipCompression)
+ if ((next->columns > 256L) && (next->rows > 256L) &&
+ (next->compression == ZipCompression))
{
Image
*write_image;
return(MagickFalse);
write_info=CloneImageInfo(image_info);
(void) CopyMagickString(write_info->filename,"PNG:",MaxTextExtent);
+ /*
+ Don't write any ancillary chunks except for gAMA and tRNS.
+ */
+ (void) SetImageArtifact(write_image,"png:include-chunk",
+ "none,trns,gama");
png=(unsigned char *) ImageToBlob(write_info,write_image,&length,
exception);
write_image=DestroyImage(write_image);
Initialize ICON raster file header.
*/
if (next->colorspace != RGBColorspace)
- (void) TransformImageColorspace(next,RGBColorspace);
+ (void) TransformImageColorspace(next,sRGBColorspace,exception);
icon_info.file_size=14+12+28;
icon_info.offset_bits=icon_info.file_size;
icon_info.compression=BI_RGB;
case UndefinedResolution:
case PixelsPerInchResolution:
{
- icon_info.x_pixels=(size_t) (100.0*next->x_resolution/2.54);
- icon_info.y_pixels=(size_t) (100.0*next->y_resolution/2.54);
+ icon_info.x_pixels=(size_t) (100.0*next->resolution.x/2.54);
+ icon_info.y_pixels=(size_t) (100.0*next->resolution.y/2.54);
break;
}
case PixelsPerCentimeterResolution:
{
- icon_info.x_pixels=(size_t) (100.0*next->x_resolution);
- icon_info.y_pixels=(size_t) (100.0*next->y_resolution);
+ icon_info.x_pixels=(size_t) (100.0*next->resolution.x);
+ icon_info.y_pixels=(size_t) (100.0*next->resolution.y);
break;
}
}