From: Cristy Date: Wed, 13 Dec 2017 00:33:36 +0000 (-0500) Subject: gradient:"gray(0)-gray(255)" is linear gray X-Git-Tag: 7.0.7-15~16 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=38cc8adac7067b67f9df9f2cdbe74987b442b785;p=imagemagick gradient:"gray(0)-gray(255)" is linear gray --- diff --git a/MagickCore/color.c b/MagickCore/color.c index c9f7578ba..70b553efd 100644 --- a/MagickCore/color.c +++ b/MagickCore/color.c @@ -2456,6 +2456,7 @@ MagickExport MagickBooleanType QueryColorCompliance(const char *name, if (LocaleCompare(colorspace,"gray") == 0) { color->colorspace=GRAYColorspace; + color->gamma=1.0; color->green=color->red; color->blue=color->red; if (((flags & SigmaValue) != 0) && diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c index ed9fcb837..cbea7e582 100644 --- a/MagickCore/pixel.c +++ b/MagickCore/pixel.c @@ -2165,6 +2165,7 @@ MagickExport void GetPixelInfo(const Image *image,PixelInfo *pixel) pixel->alpha_trait=UndefinedPixelTrait; pixel->fuzz=0.0; pixel->depth=MAGICKCORE_QUANTUM_DEPTH; + pixel->gamma=1.000/2.200; pixel->red=0.0; pixel->green=0.0; pixel->blue=0.0; @@ -2172,7 +2173,6 @@ MagickExport void GetPixelInfo(const Image *image,PixelInfo *pixel) pixel->alpha=(double) OpaqueAlpha; pixel->index=0.0; pixel->count=0; - pixel->fuzz=0.0; if (image == (const Image *) NULL) return; pixel->storage_class=image->storage_class; @@ -2180,6 +2180,7 @@ MagickExport void GetPixelInfo(const Image *image,PixelInfo *pixel) pixel->alpha_trait=image->alpha_trait; pixel->depth=image->depth; pixel->fuzz=image->fuzz; + pixel->gamma=image->gamma; } /* diff --git a/MagickCore/pixel.h b/MagickCore/pixel.h index e92d56243..844195b8c 100644 --- a/MagickCore/pixel.h +++ b/MagickCore/pixel.h @@ -191,6 +191,9 @@ typedef struct _PixelInfo black, alpha, index; + + double + gamma; } PixelInfo; typedef struct _PixelPacket diff --git a/coders/gradient.c b/coders/gradient.c index 9901067b5..337b02bb9 100644 --- a/coders/gradient.c +++ b/coders/gradient.c @@ -173,6 +173,7 @@ static Image *ReadGRADIENTImage(const ImageInfo *image_info, image->alpha_trait=stops[0].color.alpha_trait; if (stops[1].color.alpha_trait != UndefinedPixelTrait) image->alpha_trait=stops[1].color.alpha_trait; + image->gamma=MagickMax(stops[0].color.gamma,stops[1].color.gamma); status=GradientImage(image,LocaleCompare(image_info->magick,"GRADIENT") == 0 ? LinearGradient : RadialGradient,PadSpread,stops,2,exception); stops=(StopInfo *) RelinquishMagickMemory(stops);