HSL

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

HSL, HLS или HSI (от англ. hue, saturation, lightness (intensity)) — цветовая модель, в которой цветовыми координатами являются тон, насыщенность и светлота. Следует отметить, что HSV и HSL — две разные цветовые модели (lightness — светлота, что отличается от яркости).

Изображение, разложенное на составляющие H, S и L

Соотношения с другими моделями

Конвертация из RGB

Выбор цвета фигуры в модели HSL (c альфа-каналом) в векторном графическом редакторе Inkscape
Визулизация перехода между цветовыми моделями RGB и HSL

[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]

Ссылки