AHSL

Материал из testwiki
Перейти к навигации Перейти к поиску
Цветовая модель AHSL

AHSL или AHLS (от Шаблон:Lang-en) — цветовая модель, в которой цветовыми координатами являются тон, насыщенность и светлота. Следует отметить, что HSV, HSL и AHSL — разные цветовые модели. AHSL — альтернативная модель HSL, принципиальное различие заключается в определении характеристики Saturation (насыщенность).

  • Alternative — альтернативная версия цветовой модели HSL.
  • Hue — оттенок от 0° до 360° (красный, оранжевый, жёлтый, зелёный, голубой, синий, фиолетовый). 0° и 360° соответствуют красному цвету #f00.
  • Saturation — насыщенность цвета от 0 до 255. Практически характеристика S соответствует «уровню прозрачности» слоя с данным цветом (заданным оттенком H и светлотой L), когда под ним находится слой с соответствующим заданному чёрно-белым цветом, который определяется как присваивание каналам RGB среднеарифметического значения. Например для цвета #f00 (R:255 G:0 b:0) будет соответствовать чёрно-белый цвет #555555 (R:85 G:85 B:85), а для #ff0 (R:255 G:255 B:0) — #aaaaaa (R:170 G:170 B:170).
  • Lightness — светлота от −100 до 100. Значению −100 соответствует чёрный цвет, а значению 100 — белый. Соответствует уровню прозрачности белого (если L>0) или чёрного (если L<0) цвета в процентах, «находящегося над заданным».

Конвертация

из RGB в AHSL

H={0if MAX=MIN60×GBMAXMIN+0,if MAX=Rand GB60×GBMAXMIN+360,if MAX=Rand G<B60×BRMAXMIN+120,if MAX=G60×RGMAXMIN+240,if MAX=B
GRAY=R+G+B3
R0=0,G0=0,B0=0
if (H>=0 and H<=60R0=255,G0=4.25×H
if (H>60 and H<=120G0=255,R0=2554.25×(H60)
if (H>120 and H<=180G0=255,B0=4.25×(H120)
if (H>180 and H<=240B0=255,G0=2554.25×(H180)
if (H>240 and H<=300B0=255,R0=4.25×(H240)
if (H>300 and H<=360R0=255,B0=2554.25×(H300)
GRAY0=R0+G0+B03
L={0if GRAY=GRAY0100×(GRAYGRAY0)255GRAY0,if GRAY>GRAY0100×(GRAYGRAY0)GRAY0,if GRAY<GRAY0
if (L>0R0=R0+L×(255R0)100
if (L<0R0=R0+L×R0100
S={0,if R=GRAY255×|RGRAY||R0GRAY|,if RGRAY

из AHSL в RGB

R=0,G=0,B=0
if (H>=0 and H<=60R=255,G=4.25×H
if (H>60 and H<=120G=255,R=2554.25×(H60)
if (H>120 and H<=180G=255,B=4.25×(H120)
if (H>180 and H<=240B=255,G=2554.25×(H180)
if (H>240 and H<=300B=255,R=4.25×(H240)
if (H>300 and H<=360R=255,B=2554.25×(H300)
if L>0{R=R+L×(255R)100G=G+L×(255G)100B=B+L×(255B)100
if L<0{R=R+L×R100G=G+L×G100B=B+L×B100
GRAY=R+G+B3
R=GRAY+S×(RGRAY)255
G=GRAY+S×(GGRAY)255
B=GRAY+S×(BGRAY)255

Отличие AHSL от HSL

В цветовой модели AHSL каждому цвету соответствует «свой» чёрно-белый цвет, который определяется среднеарифметическими значениями каналов RGB. Когда в модели HSL цвету любого тона с одной светлотой соответствует один и тот же чёрно-белый цвет. Таким образом, чёрно-белое изображение, полученное из цветного путём изменения характеристики отвечающей за насыщенность в модели AHSL, будет «правильным» чёрно-белым изображением, в отличие от изображения полученного тем же способом с использованием модели HSL.

Получение цвета заданного моделью AHSL

Шаблон:Нет ссылок в разделеРассмотрим получение цвета, заданного его характеристиками по модели AHSL, в графическом редакторе. У нас есть тон цвета (H), насыщенность (S) и светлота (L). Создадим 3 слоя, которые будут отвечать за характеристики H, L, S. Средний слой зальём чистым цветом, оттенок которого равен H (H=0 — #ff0000; H=60 — #ffff00; H=120 — #00ff00; H=180 — #00ffff; H=240 — #0000ff; H=300 — #ff00ff; H=360 — #ff0000). Если L>0 верхний слой заливаем белым цветом (#ffffff), если L<0 — чёрным (#000000), если L=0 — верхний слой можно оставить пустым. Прозрачность верхнего слоя устанавливаем соответственно абсолютному значению L, считая что |L| - прозрачность верхнего слоя заданная в процентах. Теперь объединяем верхний и средний слои в один. Определяем получившийся цвет и рассчитываем соответствующий ему чёрно-белый: каналам RGB задаём их среднеарифметическое значение (например для красного цвета #ff0000 соответствующий чёрно-белый R:85; G:85; B:85). Нижний слой заливаем чёрно-белым цветом. Для верхнего слоя устанавливаем прозрачность равную характеристики S (насыщенность), считаем что S=255 это полностью непрозрачный слой, S=0 — полностью прозрачный. Объединив слои, мы получим заданный нам цвет по AHSL.

Преимущества

  • Цветовая модель AHSL близка к человеческому восприятию цветов. Характеристики модели AHSL дают явное представление о заданном цвете и отвечают на вопросы: «Какой это цвет?», «На сколько он насыщен?», «На сколько он светлый или тёмный?». В отличие от модели HSL, характеристика S модели AHSL даёт более корректное представление о насыщенности цвета.
  • AHSL предоставляет возможность изменения оттенка, насыщенности, яркости путём непосредственного изменения соответствующих характеристик H,S,L

Недостатки

  • Каждому цвету, с насыщенностью 0 соответствует 360 или более различных способов представления данного цвета.

Применение

Благодаря разложению цвета на его основные характеристики (оттенок, насыщенность, светлота) цветовую модель AHSL удобно использовать в графических редакторах при коррекции оттенка, насыщенности, яркости и контрастности изображения.

См. также

Ссылки

Шаблон:Цветовые модели