From 1d92f7952ace182649f73e84b7ecbba1798e8fff Mon Sep 17 00:00:00 2001 From: cristy Date: Mon, 9 Sep 2013 13:04:57 +0000 Subject: [PATCH] --- MagickCore/color.c | 7 ++++++- coders/xpm.c | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/MagickCore/color.c b/MagickCore/color.c index e1b42f4b8..9ff0bc0d1 100644 --- a/MagickCore/color.c +++ b/MagickCore/color.c @@ -2268,6 +2268,7 @@ MagickExport MagickBooleanType QueryColorCompliance(const char *name, depth=4*(n/4); } color->colorspace=sRGBColorspace; + color->depth=depth; color->alpha_trait=UndefinedPixelTrait; range=GetQuantumRange(depth); color->red=(double) ScaleAnyToQuantum(pixel.red,range); @@ -2336,7 +2337,10 @@ MagickExport MagickBooleanType QueryColorCompliance(const char *name, } color->colorspace=(ColorspaceType) type; if (IfMagickFalse(icc_color) && (color->colorspace == RGBColorspace)) - color->colorspace=sRGBColorspace; /* as required by SVG standard */ + { + color->colorspace=sRGBColorspace; /* as required by SVG standard */ + color->depth=8; + } SetGeometryInfo(&geometry_info); flags=ParseGeometry(name+i+1,&geometry_info); if (flags == 0) @@ -2453,6 +2457,7 @@ MagickExport MagickBooleanType QueryColorCompliance(const char *name, if (p == (const ColorInfo *) NULL) return(MagickFalse); color->colorspace=sRGBColorspace; + color->depth=8; color->alpha_trait=p->color.alpha != OpaqueAlpha ? BlendPixelTrait : UndefinedPixelTrait; color->red=(double) p->color.red; diff --git a/coders/xpm.c b/coders/xpm.c index 018e0f6ed..56e93ee2d 100644 --- a/coders/xpm.c +++ b/coders/xpm.c @@ -319,7 +319,6 @@ static Image *ReadXPMImage(const ImageInfo *image_info,ExceptionInfo *exception) if ((count != 4) || (width > 10) || (image->columns == 0) || (image->rows == 0) || (image->colors == 0)) ThrowReaderException(CorruptImageError,"ImproperImageHeader"); - image->depth=16; /* Remove unquoted characters. */ @@ -347,6 +346,7 @@ static Image *ReadXPMImage(const ImageInfo *image_info,ExceptionInfo *exception) /* Read image colormap. */ + image->depth=1; next=NextXPMLine(xpm_buffer); for (j=0; (j < (ssize_t) image->colors) && (next != (char*) NULL); j++) { @@ -382,6 +382,8 @@ static Image *ReadXPMImage(const ImageInfo *image_info,ExceptionInfo *exception) exception); if (status == MagickFalse) break; + if (image->depth < image->colormap[j].depth) + image->depth=image->colormap[j].depth; } if (j < (ssize_t) image->colors) ThrowReaderException(CorruptImageError,"CorruptImage"); -- 2.40.0