如何将 HSB 颜色转换为 HSL?
Photoshop 在其颜色选择器中显示 HSB 颜色。 HSL 颜色可以在 CSS 中使用。
我试过这个 JS:
function hsb2hsl(h, s, b) { return { h: h, s: s, l: b-s/2 } }
但是 hsb2hsl(0, 100, 50).l == 0
而不是 25
更新:我可以在不转换 HSB → RGB → HSL 的情况下做到这一点吗?
最佳答案
我认为这是最准确的:
function hsv_to_hsl(h, s, v) {
// both hsv and hsl values are in [0, 1]
var l = (2 - s) * v / 2;
if (l != 0) {
if (l == 1) {
s = 0;
} else if (l < 0.5) {
s = s * v / (l * 2);
} else {
s = s * v / (2 - l * 2);
}
}
return [h, s, l];
}
关于javascript - 将 HSB/HSV 颜色转换为 HSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3423214/