Преобразовать цвет HSB / HSV в HSL

Как мне преобразовать цвет 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?

13
задан Paul Du Bois 13 October 2015 в 21:32
поделиться

2 ответа

Боюсь, мне не хватает знаний о Javascript, но вы сможете сделать вывод о преобразовании из http://ariya.blogspot.com/2008/07/converting-between -hsl-and-hsv.html

-3
ответ дан 1 December 2019 в 19:30
поделиться

Прежде всего, ваш порядок операций приведет к:

b - s / 2 =
50 - 100 / 2 =
50 - 50 = 0

потому что оператор деления имеет более высокий приоритет, чем вычитание. Если вы ожидаете 25, вам нужно вместо этого выполнить (b - s) / 2 .

Однако я не совсем уверен, что это именно то, что вам нужно. Поскольку определения как B (V), так и L основаны на цветовом пространстве RGB, вам понадобится как минимум способ восстановить значения M и m для расчета преобразования.

Дополнительную информацию см. В статье Википедии .

2
ответ дан 1 December 2019 в 19:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: