Перейти к содержанию

HSL

Материал из Википедии — свободной энциклопедии

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

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

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

[править | править код]

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

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

H={undefinedif MAX=MIN60∘×G−BMAX−MIN+0∘,if MAX=Rand G≥B60∘×G−BMAX−MIN+360∘,if MAX=Rand G<B60∘×B−RMAX−MIN+120∘,if MAX=G60∘×R−GMAX−MIN+240∘,if MAX=B,

S={0if L=0 or MAX=MINMAX−MINMAX+MIN=MAX−MIN2L,if 0<L≤12MAX−MIN2−(MAX+MIN)=MAX−MIN2−2L,if 12<L<1, или, в общем случае, S=MAX−MIN1−|1−(MAX+MIN)|,

L=12(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.5L+S−(L×S),if L≥0.5

P=2.0×L−Q

Hk=H360 (приведение к интервалу [0,1])

TR=Hk+13

TG=Hk

TB=Hk−13

if Tc<0→Tc=Tc+1.0for eachc=R,G,B

if Tc>1→Tc=Tc−1.0for eachc=R,G,B

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

colorc={P+((Q−P)×6.0×Tc),if Tc<16Q,if 16≤Tc<12P+((Q−P)×(23−Tc)×6.0),if 12≤Tc<23P,otherwise