javascript - 将 HSB/HSV 颜色转换为 HSL

标签 javascript colors hsv hsl hsb

如何将 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/

相关文章:

javascript - 将 JavaScript 字符串转换为 JavaScript 文字

java - 是否可以将数组中的索引与颜色进行比较?

android - 在android中有Hue时查找颜色名称

C# 将 delphi TColor 转换为颜色(十六进制)

opencv - 在opencv中读取检测到的圆圈中像素的HSV值

安卓颜色转换问题

javascript - 在使用 Jquery 打开弹出窗口之前检查它是否已经打开

javascript - Vue.js 中 Express-Handlebars 部分的等价物是什么?

javascript - 使用 mongodb Nodejs 进行异步循环

css - 具有多种颜色的边框颜色