% January 2000 %
% %
% %
-% Copyright 1999-2009 ImageMagick Studio LLC, a non-profit organization %
+% Copyright 1999-2010 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 "magick/blob-private.h"
#include "magick/cache.h"
#include "magick/color-private.h"
+#include "magick/colormap.h"
#include "magick/colorspace.h"
#include "magick/exception.h"
#include "magick/exception-private.h"
%
*/
-static MagickBooleanType WBMPReadInteger(Image *image,unsigned long *value)
+static MagickBooleanType WBMPReadInteger(Image *image,size_t *value)
{
int
byte;
int
byte;
- long
+ ssize_t
y;
MagickBooleanType
register IndexPacket
*indexes;
- register long
+ register ssize_t
x;
register PixelPacket
*q;
- register long
- i;
-
unsigned char
bit;
ThrowReaderException(CorruptImageError,"CorruptWBMPimage");
if ((image->columns == 0) || (image->rows == 0))
ThrowReaderException(CorruptImageError,"ImproperImageHeader");
- for (i=0; i < image->offset; i++)
- if (ReadBlobByte(image) == EOF)
- {
- ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
- image->filename);
- break;
- }
+ if (DiscardBlobBytes(image,image->offset) == MagickFalse)
+ ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
+ image->filename);
if (AcquireImageColormap(image,2) == MagickFalse)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
if (image_info->ping != MagickFalse)
/*
Convert bi-level image to pixel packets.
*/
- for (y=0; y < (long) image->rows; y++)
+ for (y=0; y < (ssize_t) image->rows; y++)
{
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
if (q == (PixelPacket *) NULL)
indexes=GetAuthenticIndexQueue(image);
bit=0;
byte=0;
- for (x=0; x < (long) image->columns; x++)
+ for (x=0; x < (ssize_t) image->columns; x++)
{
if (bit == 0)
{
}
if (SyncAuthenticPixels(image,exception) == MagickFalse)
break;
- status=SetImageProgress(image,LoadImageTag,y,image->rows);
+ status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,
+ image->rows);
if (status == MagickFalse)
break;
}
%
% The format of the RegisterWBMPImage method is:
%
-% unsigned long RegisterWBMPImage(void)
+% size_t RegisterWBMPImage(void)
%
*/
-ModuleExport unsigned long RegisterWBMPImage(void)
+ModuleExport size_t RegisterWBMPImage(void)
{
MagickInfo
*entry;
%
*/
-static void WBMPWriteInteger(Image *image,const unsigned long value)
+static void WBMPWriteInteger(Image *image,const size_t value)
{
int
bits,
flag,
n;
- register long
+ register ssize_t
i;
unsigned char
static MagickBooleanType WriteWBMPImage(const ImageInfo *image_info,
Image *image)
{
- long
+ ssize_t
y;
MagickBooleanType
register const PixelPacket
*p;
- register long
+ register ssize_t
x;
unsigned char
(void) WriteBlobMSBShort(image,0);
WBMPWriteInteger(image,image->columns);
WBMPWriteInteger(image,image->rows);
- for (y=0; y < (long) image->rows; y++)
+ for (y=0; y < (ssize_t) image->rows; y++)
{
p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
if (p == (const PixelPacket *) NULL)
indexes=GetVirtualIndexQueue(image);
bit=0;
byte=0;
- for (x=0; x < (long) image->columns; x++)
+ for (x=0; x < (ssize_t) image->columns; x++)
{
if (PixelIntensity(p) >= ((MagickRealType) QuantumRange/2.0))
byte|=0x1 << (7-bit);
}
if (bit != 0)
(void) WriteBlobByte(image,byte);
- status=SetImageProgress(image,SaveImageTag,y,image->rows);
+ status=SetImageProgress(image,SaveImageTag,(MagickOffsetType) y,
+ image->rows);
if (status == MagickFalse)
break;
}