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