HSL
HSL, HLS или HSI (от англ. hue, saturation, lightness (intensity)) — цветовая модель, в которой цветовыми координатами являются тон, насыщенность и светлота. Следует отметить, что HSV и HSL — две разные цветовые модели (lightness — светлота, что отличается от яркости).
![](https://cdn.xn--h1ajim.xn--p1ai/thumb.php?f=Barns_grand_tetons_HSL_separation.jpg&width=150)
Соотношения с другими моделями
Конвертация из RGB
![](https://cdn.xn--h1ajim.xn--p1ai/thumb.php?f=Inkscape_HSL.png&width=300)
[math]\displaystyle{ H = \begin{cases} \mbox{undefined} & \mbox{if } MAX = MIN \\ 60^\circ \times \frac{G - B}{MAX - MIN} + 0^\circ, & \mbox{if } MAX = R \\ &\mbox{and } G \ge B \\ 60^\circ \times \frac{G - B}{MAX - MIN} + 360^\circ, & \mbox{if } MAX = R \\ &\mbox{and } G \lt B \\ 60^\circ \times \frac{B - R}{MAX - MIN} + 120^\circ, & \mbox{if } MAX = G \\ 60^\circ \times \frac{R - G}{MAX - MIN} + 240^\circ, & \mbox{if } MAX = B \end{cases} }[/math],
[math]\displaystyle{ S = \begin{cases} 0 & \mbox{if } L = 0 \mbox{ or } MAX = MIN \\ \frac{MAX-MIN}{MAX+MIN} = \frac{MAX-MIN}{2L}, & \mbox{if } 0 \lt L \leq \frac{1}{2} \\ \frac{MAX-MIN}{2-(MAX+MIN)} = \frac{MAX-MIN}{2-2L}, & \mbox{if } \frac{1}{2} \lt L \lt 1 \\ \end{cases} }[/math], или, в общем случае, [math]\displaystyle{ S = \frac{MAX-MIN}{1-|1-(MAX+MIN)|} }[/math],
[math]\displaystyle{ L = \begin{matrix} \frac{1}{2} \end{matrix} (MAX + MIN) }[/math], где:
- R, G, B — значения цвета в цветовой модели RGB, значения в диапазоне [0; 1] (R - красный, G - зелёный, B - синий).
- MAX — максимум из трёх значений (R, G, B)
- MIN — минимум из трёх значений (R, G, B)
- H — тон [0; 360]
- S — насыщенность [0; 1]
- L — светлота [0; 1]
Конвертация в RGB
[math]\displaystyle{ Q= \begin{cases} L \times (1.0+S), & \mbox{if } L\lt 0.5 \\ L+S-(L \times S), & \mbox{if } L \ge 0.5 \end{cases} }[/math]
[math]\displaystyle{ P = 2.0 \times L - Q }[/math]
[math]\displaystyle{ H_k = {H \over 360} }[/math] (приведение к интервалу [0,1])
[math]\displaystyle{ T_R = H_k+\frac{1}{3} }[/math]
[math]\displaystyle{ T_G = H_k }[/math]
[math]\displaystyle{ T_B = H_k-\frac{1}{3} }[/math]
[math]\displaystyle{ \mbox{if } T_c \lt 0 \rightarrow T_c = T_c + 1.0 \quad \mbox{for each}\,c=R,G,B }[/math]
[math]\displaystyle{ \mbox{if } T_c \gt 1 \rightarrow T_c = T_c - 1.0 \quad \mbox{for each}\,c=R,G,B }[/math]
Для каждого цвета [math]\displaystyle{ c=R,G,B }[/math]:
[math]\displaystyle{ \qquad \mathrm{color}_c= \begin{cases} P+ \left((Q-P) \times 6.0 \times T_c\right), & \mbox{if } T_c \lt \frac{1}{6} \\ Q, & \mbox{if } \frac{1}{6} \le T_c \lt \frac{1}{2} \\ P+\left((Q-P) \times (\frac{2}{3}-T_c) \times 6.0 \right), & \mbox{if } \frac{1}{2} \le T_c \lt \frac{2}{3} \\ P, & \mbox{otherwise } \end{cases} }[/math]
Ссылки
- Конвертер цветов . get-color.ru.