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)
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);
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);
}
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)