From 3000960100df719f5ff8dee1cadccc32e115769d Mon Sep 17 00:00:00 2001 From: Cristy Date: Sat, 14 Sep 2019 19:56:21 -0400 Subject: [PATCH] https://github.com/ImageMagick/ImageMagick/issues/1680 --- MagickCore/colorspace.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c index 05265432e..c29bf3795 100644 --- a/MagickCore/colorspace.c +++ b/MagickCore/colorspace.c @@ -421,7 +421,8 @@ static MagickBooleanType sRGBTransformImage(Image *image, MagickRealType gray; - gray=(MagickRealType) GetPixelIntensity(image,q); + gray=0.212656*GetPixelRed(image,q)+0.715158*GetPixelGreen(image,q)+ + 0.072186*GetPixelBlue(image,q); SetPixelGray(image,ClampToQuantum(DecodePixelGamma(gray)),q); q+=GetPixelChannels(image); } @@ -477,7 +478,8 @@ static MagickBooleanType sRGBTransformImage(Image *image, MagickRealType gray; - gray=(MagickRealType) GetPixelIntensity(image,q); + gray=0.212656*GetPixelRed(image,q)+0.715158*GetPixelGreen(image,q)+ + 0.072186*GetPixelBlue(image,q); SetPixelGray(image,ClampToQuantum(gray),q); q+=GetPixelChannels(image); } @@ -1284,7 +1286,7 @@ MagickExport MagickBooleanType SetImageGray(Image *image, assert(image->signature == MagickCoreSignature); if (image->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); - if (IsImageGray(image) != MagickFalse) + if (IsImageGray(image)) return(MagickTrue); if (IssRGBCompatibleColorspace(image->colorspace) == MagickFalse) return(MagickFalse); @@ -1947,8 +1949,12 @@ static MagickBooleanType TransformsRGBImage(Image *image, MagickRealType gray; - gray=(MagickRealType) GetPixelIntensity(image,q); - SetPixelGray(image,ClampToQuantum(EncodePixelGamma(gray)),q); + gray=0.212656*GetPixelRed(image,q)+0.715158*GetPixelGreen(image,q)+ + 0.072186*GetPixelBlue(image,q); + gray=EncodePixelGamma(gray); + SetPixelRed(image,ClampToQuantum(gray),q); + SetPixelGreen(image,ClampToQuantum(gray),q); + SetPixelBlue(image,ClampToQuantum(gray),q); q+=GetPixelChannels(image); } sync=SyncCacheViewAuthenticPixels(image_view,exception); @@ -2004,8 +2010,11 @@ static MagickBooleanType TransformsRGBImage(Image *image, MagickRealType gray; - gray=(MagickRealType) GetPixelIntensity(image,q); - SetPixelGray(image,ClampToQuantum(gray),q); + gray=0.212656*GetPixelRed(image,q)+0.715158*GetPixelGreen(image,q)+ + 0.072186*GetPixelBlue(image,q); + SetPixelRed(image,ClampToQuantum(gray),q); + SetPixelGreen(image,ClampToQuantum(gray),q); + SetPixelBlue(image,ClampToQuantum(gray),q); q+=GetPixelChannels(image); } sync=SyncCacheViewAuthenticPixels(image_view,exception); -- 2.40.0