From: cristy Date: Sun, 10 Mar 2013 14:19:49 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~4117 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1d829b25726c202f89c2e4178022fbb122d177d9;p=imagemagick --- diff --git a/coders/txt.c b/coders/txt.c index 3aa7eaa86..7f762d283 100644 --- a/coders/txt.c +++ b/coders/txt.c @@ -648,7 +648,11 @@ static MagickBooleanType WriteTXTImage(const ImageInfo *image_info,Image *image, colorspace[MaxTextExtent], tuple[MaxTextExtent]; + const char + *option; + MagickBooleanType + sparse_color, status; MagickOffsetType @@ -678,6 +682,8 @@ static MagickBooleanType WriteTXTImage(const ImageInfo *image_info,Image *image, status=OpenBlob(image_info,image,WriteBlobMode,exception); if (status == MagickFalse) return(status); + option=GetImageOption(image_info,"txt:sparse-color"); + sparse_color=IsStringTrue(option); scene=0; do { @@ -700,7 +706,7 @@ static MagickBooleanType WriteTXTImage(const ImageInfo *image_info,Image *image, break; for (x=0; x < (ssize_t) image->columns; x++) { - (void) FormatLocaleString(buffer,MaxTextExtent,"%.20g,%.20g: ",(double) + (void) FormatLocaleString(buffer,MaxTextExtent,"%.20g,%.20g ",(double) x,(double) y); (void) WriteBlobString(image,buffer); GetPixelInfoPixel(image,p,&pixel); @@ -709,6 +715,21 @@ static MagickBooleanType WriteTXTImage(const ImageInfo *image_info,Image *image, pixel.green-=(QuantumRange+1)/2.0; pixel.blue-=(QuantumRange+1)/2.0; } + if ((sparse_color != MagickFalse) && + (GetPixelAlpha(image,p) == (Quantum) OpaqueAlpha)) + { + /* + Sparse-color format. + */ + (void) QueryColorname(image,&pixel,SVGCompliance,tuple,exception); + (void) WriteBlobString(image," "); + (void) WriteBlobString(image,buffer); + (void) WriteBlobString(image,tuple); + (void) WriteBlobString(image," "); + p+=GetPixelChannels(image); + continue; + } + (void) WriteBlobString(image,": "); (void) CopyMagickString(tuple,"(",MaxTextExtent); if (pixel.colorspace == GRAYColorspace) ConcatenateColorComponent(&pixel,GrayPixelChannel,X11Compliance,