diff --git a/ChangeLog b/ChangeLog
index 100d0a2..df877c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,7 +10,7 @@
2009-09-22 6.5.6-4 Cristy <quetzlzacatenango@image...>
* Don't compile Huffman2DEncodeImage() unless the TIFF delegate library
is enabled.
- * Hue in hsl() format is 0-359 and does not use %.
+ * Hue in hsl() format is 0-360 and does not use %.
2009-09-21 6.5.6-3 Cristy <quetzlzacatenango@image...>
* Deprecate LevelImageColors(), replace with LevelColorsImage().
diff --git a/magick/color.c b/magick/color.c
index 1b86e6f..65e3ee5 100644
--- a/magick/color.c
+++ b/magick/color.c
@@ -681,16 +681,6 @@
(void) ConcatenateMagickString(tuple,component,MaxTextExtent);
return;
}
- if ((channel == RedChannel) &&
- ((pixel->colorspace == HSBColorspace) ||
- (pixel->colorspace == HSLColorspace) ||
- (pixel->colorspace == HWBColorspace)))
- {
- (void) FormatMagickString(component,MaxTextExtent,"%g",
- 360.0*(QuantumScale*color));
- (void) ConcatenateMagickString(tuple,component,MaxTextExtent);
- return;
- }
if (pixel->depth > 8)
{
(void) FormatMagickString(component,MaxTextExtent,"%g%%",
@@ -3311,58 +3301,35 @@
color->opacity=(MagickRealType) RoundToQuantum((MagickRealType)
(QuantumRange-QuantumRange*geometry_info.sigma));
}
- if (LocaleCompare(colorspace,"HSB") == 0)
+ if ((LocaleCompare(colorspace,"HSB") == 0) ||
+ (LocaleCompare(colorspace,"HSL") == 0) ||
+ (LocaleCompare(colorspace,"HWB") == 0))
{
PixelPacket
pixel;
- geometry_info.rho=fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
- 360.0;
+ scale=1.0/360.0;
+ if ((flags & PercentValue) != 0)
+ scale=1.0/100.0;
+ geometry_info.rho*=360.0*scale;
scale=1.0/255.0;
if ((flags & PercentValue) != 0)
scale=1.0/100.0;
geometry_info.sigma*=scale;
geometry_info.xi*=scale;
- ConvertHSBToRGB(geometry_info.rho,geometry_info.sigma,
- geometry_info.xi,&pixel.red,&pixel.green,&pixel.blue);
- color->colorspace=RGBColorspace;
- color->red=(MagickRealType) pixel.red;
- color->green=(MagickRealType) pixel.green;
- color->blue=(MagickRealType) pixel.blue;
- }
- if (LocaleCompare(colorspace,"HSL") == 0)
- {
- PixelPacket
- pixel;
-
- geometry_info.rho=fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
- 360.0;
- scale=1.0/255.0;
- if ((flags & PercentValue) != 0)
- scale=1.0/100.0;
- geometry_info.sigma*=scale;
- geometry_info.xi*=scale;
- ConvertHSLToRGB(geometry_info.rho,geometry_info.sigma,
- geometry_info.xi,&pixel.red,&pixel.green,&pixel.blue);
- color->colorspace=RGBColorspace;
- color->red=(MagickRealType) pixel.red;
- color->green=(MagickRealType) pixel.green;
- color->blue=(MagickRealType) pixel.blue;
- }
- if (LocaleCompare(colorspace,"HWB") == 0)
- {
- PixelPacket
- pixel;
-
- geometry_info.rho=fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
- 360.0;
- scale=1.0/255.0;
- if ((flags & PercentValue) != 0)
- scale=1.0/100.0;
- geometry_info.sigma*=scale;
- geometry_info.xi*=scale;
- ConvertHWBToRGB(geometry_info.rho,geometry_info.sigma,
- geometry_info.xi,&pixel.red,&pixel.green,&pixel.blue);
+ if (LocaleCompare(colorspace,"HSB") == 0)
+ ConvertHSBToRGB(fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
+ 360.0,geometry_info.sigma,geometry_info.xi,&pixel.red,
+ &pixel.green,&pixel.blue);
+ else
+ if (LocaleCompare(colorspace,"HSL") == 0)
+ ConvertHSLToRGB(fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
+ 360.0,geometry_info.sigma,geometry_info.xi,&pixel.red,
+ &pixel.green,&pixel.blue);
+ else
+ ConvertHWBToRGB(fmod(fmod(geometry_info.rho,360.0)+360.0,360.0)/
+ 360.0,geometry_info.sigma,geometry_info.xi,&pixel.red,
+ &pixel.green,&pixel.blue);
color->colorspace=RGBColorspace;
color->red=(MagickRealType) pixel.red;
color->green=(MagickRealType) pixel.green;