]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Thu, 4 Apr 2013 16:53:36 +0000 (16:53 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Thu, 4 Apr 2013 16:53:36 +0000 (16:53 +0000)
MagickCore/colorspace.c
MagickCore/gem.c

index dbfef494d5bece8994dab32c328b3a1298e51a04..6e336f87a0fcae59676b971f4875aa3bb9971a25 100644 (file)
@@ -766,8 +766,8 @@ static MagickBooleanType sRGBTransformImage(Image *image,
           blue=DecodePixelGamma((MagickRealType) GetPixelBlue(image,q));
           ConvertRGBToXYZ(red,green,blue,&X,&Y,&Z);
           ConvertXYZToLab(X,Y,Z,&L,&a,&b);
-          C=hypot(a,b);
-          H=180.0*atan2(b,a)/MagickPI;
+          C=hypot(a-0.5,b-0.5);
+          H=180.0*atan2(b-0.5,a-0.5)/MagickPI;
           if (H < 360.0)
             H+=360.0;
           if (H > 360.0)
@@ -2619,8 +2619,8 @@ static MagickBooleanType TransformsRGBImage(Image *image,
           L=QuantumScale*GetPixelRed(image,q);
           C=QuantumScale*GetPixelGreen(image,q);
           H=QuantumScale*GetPixelBlue(image,q);
-          a=C*cos(360.0*H*MagickPI/180.0);
-          b=C*sin(360.0*H*MagickPI/180.0);
+          a=C*cos(360.0*H*MagickPI/180.0)+0.5;
+          b=C*sin(360.0*H*MagickPI/180.0)+0.5;
           ConvertLabToXYZ(L,a,b,&X,&Y,&Z);
           ConvertXYZToRGB(X,Y,Z,&red,&green,&blue);
           SetPixelRed(image,ClampToQuantum(EncodePixelGamma(red)),q);
index fb53d08f1a0a6f2012a2c183335a255edab4979f..913a92c9d127b1d231251b7a1b76dd2cf54d7235 100644 (file)
@@ -107,8 +107,8 @@ MagickPrivate void ConvertHCLToRGB(const double hue,const double chroma,
   L=luma;
   C=chroma;
   H=hue;
-  a=C*cos(360.0*H*(MagickPI/180.0));
-  b=C*sin(360.0*H*(MagickPI/180.0));
+  a=C*cos(360.0*H*MagickPI/180.0)+0.5;
+  b=C*sin(360.0*H*MagickPI/180.0)+0.5;
   ConvertLabToXYZ(L,a,b,&X,&Y,&Z);
   ConvertXYZToRGB(X,Y,Z,red,green,blue);
 }
@@ -420,8 +420,8 @@ MagickPrivate void ConvertRGBToHCL(const double red,const double green,
   assert(luma != (double *) NULL);
   ConvertRGBToXYZ(red,green,blue,&X,&Y,&Z);
   ConvertXYZToLab(X,Y,Z,&L,&a,&b);
-  C=hypot(a,b);
-  H=180.0*atan2(b,a)/MagickPI;
+  C=hypot(a-0.5,b-0.5);
+  H=180.0*atan2(b-0.5,a-0.5)/MagickPI;
   if (H < 360.0)
     H+=360.0;
   if (H > 360.0)