X-Git-Url: https://granicus.if.org/sourcecode?a=blobdiff_plain;f=coders%2Fxbm.c;h=959442533fa806bf65b74a2cf17d4680f6369811;hb=8418c7e51974060a1c724e25d700d72fb437174b;hp=ababf6a80dd9c9bdef5e78b12535c28496c7181a;hpb=018f07f7333b25743d0afff892450cebdb905c1a;p=imagemagick diff --git a/coders/xbm.c b/coders/xbm.c index ababf6a80..959442533 100644 --- a/coders/xbm.c +++ b/coders/xbm.c @@ -13,11 +13,11 @@ % Read/Write X Windows System Bitmap Format % % % % Software Design % -% John Cristy % +% Cristy % % July 1992 % % % % % -% Copyright 1999-2011 ImageMagick Studio LLC, a non-profit organization % +% Copyright 1999-2014 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 % @@ -40,6 +40,7 @@ Include declarations. */ #include "MagickCore/studio.h" +#include "MagickCore/attribute.h" #include "MagickCore/blob.h" #include "MagickCore/blob-private.h" #include "MagickCore/cache.h" @@ -214,7 +215,7 @@ static Image *ReadXBMImage(const ImageInfo *image_info,ExceptionInfo *exception) image_info->filename); assert(exception != (ExceptionInfo *) NULL); assert(exception->signature == MagickSignature); - image=AcquireImage(image_info); + image=AcquireImage(image_info,exception); status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) { @@ -276,9 +277,9 @@ static Image *ReadXBMImage(const ImageInfo *image_info,ExceptionInfo *exception) /* Initialize colormap. */ - image->colormap[0].red=(Quantum) QuantumRange; - image->colormap[0].green=(Quantum) QuantumRange; - image->colormap[0].blue=(Quantum) QuantumRange; + image->colormap[0].red=QuantumRange; + image->colormap[0].green=QuantumRange; + image->colormap[0].blue=QuantumRange; image->colormap[1].red=(Quantum) 0; image->colormap[1].green=(Quantum) 0; image->colormap[1].blue=(Quantum) 0; @@ -322,8 +323,8 @@ static Image *ReadXBMImage(const ImageInfo *image_info,ExceptionInfo *exception) Read hex image data. */ padding=0; - if (((image->columns % 16) != 0) && - ((image->columns % 16) < 9) && (version == 10)) + if (((image->columns % 16) != 0) && ((image->columns % 16) < 9) && + (version == 10)) padding=1; bytes_per_line=(image->columns+7)/8+padding; length=(size_t) image->rows; @@ -361,7 +362,7 @@ static Image *ReadXBMImage(const ImageInfo *image_info,ExceptionInfo *exception) { if (bit == 0) byte=(size_t) (*p++); - SetPixelIndex(image,(byte & 0x01) != 0 ? 0x01 : 0x00,q); + SetPixelIndex(image,(Quantum) ((byte & 0x01) != 0 ? 0x01 : 0x00),q); bit++; byte>>=1; if (bit == 8) @@ -376,7 +377,7 @@ static Image *ReadXBMImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } data=(unsigned char *) RelinquishMagickMemory(data); - (void) SyncImage(image); + (void) SyncImage(image,exception); (void) CloseBlob(image); return(GetFirstImageInList(image)); } @@ -510,8 +511,7 @@ static MagickBooleanType WriteXBMImage(const ImageInfo *image_info,Image *image, status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception); if (status == MagickFalse) return(status); - if (IsRGBColorspace(image->colorspace) == MagickFalse) - (void) TransformImageColorspace(image,RGBColorspace); + (void) TransformImageColorspace(image,sRGBColorspace,exception); /* Write X bitmap header. */ @@ -546,7 +546,7 @@ static MagickBooleanType WriteXBMImage(const ImageInfo *image_info,Image *image, for (x=0; x < (ssize_t) image->columns; x++) { byte>>=1; - if (GetPixelIntensity(image,p) < ((MagickRealType) QuantumRange/2.0)) + if (GetPixelLuma(image,p) < (QuantumRange/2)) byte|=0x80; bit++; if (bit == 8)