src/lib/core/class/color.ts
Public hslToRgb |
hslToRgb(h: number, s: number, l: number)
|
Defined in src/lib/core/class/color.ts:3
|
Returns :
number[]
|
Private hue2rgb |
hue2rgb(p: number, q: number, t: number)
|
Defined in src/lib/core/class/color.ts:20
|
Returns :
number
|
export class Color {
public hslToRgb(h: number, s: number, l: number): number[] {
let r, g, b;
if (s === 0) {
r = g = b = l;
} else {
const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
const p = 2 * l - q;
r = this.hue2rgb(p, q, h + 1 / 3);
g = this.hue2rgb(p, q, h);
b = this.hue2rgb(p, q, h - 1 / 3);
}
return [Math.floor(r * 255), Math.floor(g * 255), Math.floor(b * 255)];
}
private hue2rgb(p: number, q: number, t: number): number {
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;
}
}