export function hsl2Rgb( color: [number, number, number] ): [number, number, number] { let l = color[2] if (color[1] == 0) { l = Math.round(l * 255) return [l, l, l] } else { function hue2rgb(p: number, q: number, t: 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 } const s = color[1] const q = l < 0.5 ? l * (1 + s) : l + s - l * s const p = 2 * l - q const r = hue2rgb(p, q, color[0] + 1 / 3) const g = hue2rgb(p, q, color[0]) const b = hue2rgb(p, q, color[0] - 1 / 3) return [Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)] } }