From: cristy Date: Wed, 1 May 2013 01:24:25 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~3763 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c41e5fa39a01f3b6e5d26cc7b32afe5556038f21;p=imagemagick --- diff --git a/MagickCore/gem.c b/MagickCore/gem.c index b844bbbbf..c6eb40122 100644 --- a/MagickCore/gem.c +++ b/MagickCore/gem.c @@ -95,7 +95,8 @@ MagickPrivate void ConvertHCLToRGB(const double hue,const double chroma, h, m, r, - x; + x, + z; /* Convert HCL to RGB colorspace. @@ -145,9 +146,21 @@ MagickPrivate void ConvertHCLToRGB(const double hue,const double chroma, b=x; } m=luma-(0.298839f*r+0.586811f*g+0.114350f*b); - *red=QuantumRange*(r+m); - *green=QuantumRange*(g+m); - *blue=QuantumRange*(b+m); + z=1.0; + if (m < 0.0) + { + z=luma/(luma-m); + m=0.0; + } + else + if (m+c > 1.0) + { + z=(1.0-luma)/(m+c-luma); + m=1.0-z*c; + } + *red=ClampToQuantum(QuantumRange*(z*r+m)); + *green=ClampToQuantum(QuantumRange*(z*g+m)); + *blue=ClampToQuantum(QuantumRange*(z*b+m)); } /*