HSL

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

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

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

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

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

H = { undefined if  M A X = M I N 60 × G B M A X M I N + 0 , if  M A X = R and  G B 60 × G B M A X M I N + 360 , if  M A X = R and  G < B 60 × B R M A X M I N + 120 , if  M A X = G 60 × R G M A X M I N + 240 , if  M A X = B {\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\geq B\\60^{\circ }\times {\frac {G-B}{MAX-MIN}}+360^{\circ },&{\mbox{if }}MAX=R\\&{\mbox{and }}G<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}}} ,

S = { 0 if  L = 0  or  M A X = M I N M A X M I N M A X + M I N = M A X M I N 2 L , if  0 < L 1 2 M A X M I N 2 ( M A X + M I N ) = M A X M I N 2 2 L , if  1 2 < L < 1 {\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<L\leq {\frac {1}{2}}\\{\frac {MAX-MIN}{2-(MAX+MIN)}}={\frac {MAX-MIN}{2-2L}},&{\mbox{if }}{\frac {1}{2}}<L<1\\\end{cases}}} , или, в общем случае, S = M A X M I N 1 | 1 ( M A X + M I N ) | {\displaystyle S={\frac {MAX-MIN}{1-|1-(MAX+MIN)|}}} ,

L = 1 2 ( M A X + M I N ) {\displaystyle L={\begin{matrix}{\frac {1}{2}}\end{matrix}}(MAX+MIN)} , где:

  • 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

Q = { L × ( 1.0 + S ) , if  L < 0.5 L + S ( L × S ) , if  L 0.5 {\displaystyle Q={\begin{cases}L\times (1.0+S),&{\mbox{if }}L<0.5\\L+S-(L\times S),&{\mbox{if }}L\geq 0.5\end{cases}}}

P = 2.0 × L Q {\displaystyle P=2.0\times L-Q}

H k = H 360 {\displaystyle H_{k}={H \over 360}} (приведение к интервалу [0,1])

T R = H k + 1 3 {\displaystyle T_{R}=H_{k}+{\frac {1}{3}}}

T G = H k {\displaystyle T_{G}=H_{k}}

T B = H k 1 3 {\displaystyle T_{B}=H_{k}-{\frac {1}{3}}}

if  T c < 0 T c = T c + 1.0 for each c = R , G , B {\displaystyle {\mbox{if }}T_{c}<0\rightarrow T_{c}=T_{c}+1.0\quad {\mbox{for each}}\,c=R,G,B}

if  T c > 1 T c = T c 1.0 for each c = R , G , B {\displaystyle {\mbox{if }}T_{c}>1\rightarrow T_{c}=T_{c}-1.0\quad {\mbox{for each}}\,c=R,G,B}

Для каждого цвета c = R , G , B {\displaystyle c=R,G,B} :

c o l o r c = { P + ( ( Q P ) × 6.0 × T c ) , if  T c < 1 6 Q , if  1 6 T c < 1 2 P + ( ( Q P ) × ( 2 3 T c ) × 6.0 ) , if  1 2 T c < 2 3 P , otherwise  {\displaystyle \qquad \mathrm {color} _{c}={\begin{cases}P+\left((Q-P)\times 6.0\times T_{c}\right),&{\mbox{if }}T_{c}<{\frac {1}{6}}\\Q,&{\mbox{if }}{\frac {1}{6}}\leq T_{c}<{\frac {1}{2}}\\P+\left((Q-P)\times ({\frac {2}{3}}-T_{c})\times 6.0\right),&{\mbox{if }}{\frac {1}{2}}\leq T_{c}<{\frac {2}{3}}\\P,&{\mbox{otherwise }}\end{cases}}}

Ссылки

  • Конвертер цветов  (неопр.). get-color.ru.
Перейти к шаблону «Цветовые модели»
  • RGB (sRGB
  • ProPhoto)
  • CMYK
  • XYZ
  • LMS
  • HSV (HSB)
  • HSL
  • AHSL
  • RYB
  • LAB
  • YUV
  • YCbCr
  • YPbPr
  • YDbDr
  • YIQ
  • Манселла

Цветовые каталоги: