(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%%",
color->opacity=(MagickRealType) RoundToQuantum((MagickRealType)
(QuantumRange-QuantumRange*geometry_info.sigma));
}
- if (LocaleCompare(colorspace,"HSB") == 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;
- 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)
+ 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/255.0;
+ scale=1.0/360.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;
+ 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;
- 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;