Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
In my previous post on CSS3 Colors – RGBA vs. HSLA, I provided a script to easily convert RGB to HSL using inputs/outputs friendly to CSS3. In this post, I provide the reverse script – converting from HSL to RGB. The trailing “A” means Alpha (scale of opacity), and requires no conversion.
// elsewhere in script use this way:
// var result = Palermozr.hslToRgb(0,0,100);
// result.R // Red
// result.G // Green
// result.B // Blue
var Palermozr = (function () {
function hslToRgb(h, s, l) {
h /= 360; s /= 100; l /= 100;
var r, g, b;
if (s == 0) {
r = g = b = l;
} else {
var l2 = l < 0.5 ? l * (1 + s) : (l + s) - (s * l);
var l1 = (2 * l) - l2;
r = hueToRgb(l1, l2, (h + (1 / 3)));
g = hueToRgb(l1, l2, h);
b = hueToRgb(l1, l2, (h - (1 / 3)));
}
r = Math.round(255 * r);
g = Math.round(255 * g);
b = Math.round(255 * b);
return { R: r, G: g, B: b };
}
// helper function used above
function hueToRgb(l1, l2, h) {
if (h < 0) h += 1;
if (h > 1) h -= 1;
if (h < 1 / 6) return (l1 + (l2 - l1) * 6 * h);
if (h < 1 / 2) return l2;
if (h < 2 / 3) return (l1 + (l2 - l1) * ((2 / 3) - h) * 6);
return l1;
}
return {
hslToRgb: hslToRgb
};
})();