Hi there,
I know that this tread is bit old but I couldn’t find inverse function: RgbToHsl().
I have created JS copy of function provided here:
https://wiki.secondlife.com/wiki/Color_conversion_scripts#RGB_to_HSL
but it returns some strange values.
Any help will be appreciated.
function RgbToHsl(rgb){
var r = rgb[0] / 255;
var g = rgb[1] / 255;
var b = rgb[2] / 255;
var h;
var s;
var l;
var max;
var min;
// Looking for the max value among r, g and b
if (r > g && r > b) max= r;
else if (g > b) max = g;
else max = b;
// Looking for the min value among r, g and b
if (r < g && r < b) min = r;
else if (g < b) min = g;
else min = b;
l = (max + min) / 2;
if (max == min){
h = 0.0;
s = 0.0;
}else{
var d = max - min;
if (l > 0.5) s = d / (2 - max - min);
else s = d / (max + min);
if (max == r) {
if (g < b) h = (g - b) / d + 6;
else h = (g - b) / d;
}
else if (max == g)
h = (b - r) / d + 2;
else
h = (r - g) / d + 4;
h /= 6;
}
return [h, s, l];
}