Как мне преобразовать цвет 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?
Боюсь, мне не хватает знаний о Javascript, но вы сможете сделать вывод о преобразовании из http://ariya.blogspot.com/2008/07/converting-between -hsl-and-hsv.html
Прежде всего, ваш порядок операций приведет к:
b - s / 2 =
50 - 100 / 2 =
50 - 50 = 0
потому что оператор деления имеет более высокий приоритет, чем вычитание. Если вы ожидаете 25, вам нужно вместо этого выполнить (b - s) / 2
.
Однако я не совсем уверен, что это именно то, что вам нужно. Поскольку определения как B (V), так и L основаны на цветовом пространстве RGB, вам понадобится как минимум способ восстановить значения M и m для расчета преобразования.
Дополнительную информацию см. В статье Википедии .