Template:RGBtoHSL.S/doc

This template computes the saturation value in [0..1] in the HSL color space (as defined in standard CSS3), from a color specified in the sRGB color space. The returned value is rounded to three decimals (which preserves the precision of RGB colors whose components are specified in the standard range [0..255]).


 * Syntax
 * r g b
 * The range of the three parameters is [0..255] ; they can be any numeric expressions.
 * r g b
 * To substitute the template invokation by the compute value when saving an article Wiki source.


 * Algorithm used
 * if r = g and g = b then
 * S = 0;
 * else if g &gt;= r and g &gt;= b then
 * if r &gt; b
 * then if g + b &gt; 255 then S = (g - b) / (510 - g - b); else S = (g - b) / (g + b);
 * else if g + r &gt; 255 then S = (g - r) / (510 - g - r); else S = (g - r) / (g + r);
 * else if r &gt;= b and r &gt;= g then
 * if r &gt; g
 * then if r + g &gt; 255 then S = (r - g) / (510 - r - g); else S = (r - g) / (r + g);
 * else if r + b &gt; 255 then S = (r - b) / (510 - r - b); else S = (r - b) / (r + b);
 * else
 * if g &gt; r
 * then if b + r &gt; 255 then S = (b - r) / (510 - b - r); else S = (b - r) / (b + r);
 * else if b + g &gt; 255 then S = (b - g) / (510 - b - g); else S = (b - g) / (b + g);
 * return S round 3;


 * Examples
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * " " returns "".
 * example for "sandybrown" = "#F4A460" = "rgb(244, 164, 96)" = "hsl(27.6, 0.871, 0.667)"
 * " " returns "".


 * same example using subst
 * " " returns "0.871".


 * See also
 * Template:RGBtoHSL.H, Template:RGBtoHSL.L
 * Template:HSLtoRGB.R, Template:HSLtoRGB.G, Template:HSLtoRGB.B