mirror of
https://github.com/lospec/pixel-editor.git
synced 2023-08-10 21:12:51 +03:00
32 lines
745 B
JavaScript
32 lines
745 B
JavaScript
|
function hslToRgb(h, s, l){
|
||
|
h /= 255;
|
||
|
s /= 255;
|
||
|
l /= 255;
|
||
|
|
||
|
var r, g, b;
|
||
|
|
||
|
if(s == 0){
|
||
|
r = g = b = l; // achromatic
|
||
|
}else{
|
||
|
var hue2rgb = function hue2rgb(p, q, t){
|
||
|
if(t < 0) t += 1;
|
||
|
if(t > 1) t -= 1;
|
||
|
if(t < 1/6) return p + (q - p) * 6 * t;
|
||
|
if(t < 1/2) return q;
|
||
|
if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;
|
||
|
return p;
|
||
|
}
|
||
|
|
||
|
var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
|
||
|
var p = 2 * l - q;
|
||
|
r = hue2rgb(p, q, h + 1/3);
|
||
|
g = hue2rgb(p, q, h);
|
||
|
b = hue2rgb(p, q, h - 1/3);
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
r:Math.round(r * 255),
|
||
|
g:Math.round(g * 255),
|
||
|
b:Math.round(b * 255)
|
||
|
};
|
||
|
}
|