Конвертер HSLA в HSVA
Преобразуйте hsla(h, s, l, a) значения в hsva(h, s, v, a) без необходимости вручную проходить через каждую формулу. Этот инструмент полезен, когда ваша система дизайна хранит цвета в формате HSLA, но вы работаете с пиками или API, которые работают в пространстве HSV с отдельным альфа-каналом.
Введите цвет в формате HSLA, и вы сразу увидите эквивалентные значения HSVA. Затем вы можете вставить hsva() стиль представления в внутренние утилиты, графические инструменты или документацию.
На этой странице вы также найдете краткое объяснение HSLA и HSVA, формулу преобразования, пример, справочную таблицу и раздел часто задаваемых вопросов, который охватывает типичные вопросы о переходе между этими двумя моделями.
Что такое HSLA
HSLA — это цветовая модель HSL с альфа-каналом. Она использует оттенок, насыщенность и светлоту для описания цвета и четвертый параметр для описания его прозрачности.
Оттенок — это угол от 0 до 360 градусов на цветовом круге. Насыщенность и светлота — это проценты от 0% до 100%. Альфа — это дробь от 0 до 1, где 0 — полностью прозрачный, а 1 — полностью непрозрачный.
HSLA распространен в темах и дизайне палитр, потому что позволяет вам регулировать интенсивность и яркость цвета, не изменяя его основной оттенок и при этом сохраняя прозрачность отдельно.
Что такое HSVA
HSVA расширяет модель HSV альфа-каналом. Его можно концептуально записать как hsva(h, s, v, a), где оттенок выбирает базовый цвет, насыщенность контролирует его интенсивность, значение контролирует, насколько он яркий относительно черного, а альфа контролирует прозрачность.
Оттенок снова варьируется от 0 до 360 градусов. Насыщенность и значение — это проценты от 0% до 100%. Альфа-компонент использует тот же диапазон 0 до 1, что и HSLA.
HSVA широко используется в цветовых пиках и инструментах рисования, где пользователи перемещают ползунки для оттенка, насыщенности, значения и непрозрачности, чтобы исследовать и точно настраивать цвета.
Формула преобразования HSLA в HSVA
hsla(h, s_l, l, a) -> hsva(h, s_v, v, a)
Given:
h in [0, 360)
s_l in [0, 100] // HSL saturation
l in [0, 100] // lightness
a in [0, 1]
1) Clamp inputs:
h_c = h
s_l_c = clamp(s_l, 0, 100)
l_c = clamp(l, 0, 100)
a_c = clamp(a, 0, 1)
2) Convert HSLA to RGB (intermediate step):
s' = s_l_c / 100
l' = l_c / 100
c = (1 - |2 * l' - 1|) * s'
x = c * (1 - |((h_c / 60) mod 2) - 1|)
if 0 <= h_c < 60 then (r1, g1, b1) = (c, x, 0)
else if 60 <= h_c < 120 then (r1, g1, b1) = (x, c, 0)
else if 120 <= h_c < 180 then (r1, g1, b1) = (0, c, x)
else if 180 <= h_c < 240 then (r1, g1, b1) = (0, x, c)
else if 240 <= h_c < 300 then (r1, g1, b1) = (x, 0, c)
else (r1, g1, b1) = (c, 0, x)
m = l' - c / 2
r' = r1 + m
g' = g1 + m
b' = b1 + m
3) Convert RGB to HSV:
max = max(r', g', b')
min = min(r', g', b')
delta = max - min
// Value:
v = max
// Saturation in HSV space:
if max == 0 then s_v' = 0
else s_v' = delta / max
// Hue (reused from HSL, but can be recomputed for safety):
if delta == 0 then h_hsv = 0
else if max == r' then h_hsv = 60 * (((g' - b') / delta) mod 6)
else if max == g' then h_hsv = 60 * (((b' - r') / delta) + 2)
else if max == b' then h_hsv = 60 * (((r' - g') / delta) + 4)
4) Scale to final units:
H = h_hsv // often equal to h_c
S_v = s_v' * 100
V = v * 100
5) Compose HSVA:
hsva(H, S_v%, V%, a_c)
Helper:
clamp(x, min, max) = min if x < min, max if x > max, else xВо многих рабочих процессах вы сохраняете угол оттенка и значение альфа неизменными и только переосмысляете, как выражаются насыщенность и яркость. Конвертер проходит через RGB, чтобы убедиться, что окончательные значения HSV описывают ту же точку в цветовом пространстве, что и исходные значения HSL.
Пример для hsla(196, 49%, 54%, 0.8)
1) Преобразование HSL в RGB:
hsl(196, 49%, 54%) -> rgb(79, 163, 194) (округлено)
2) Преобразование RGB(79, 163, 194) в HSV:
hsv(196, 59%, 76%) (округлено)
3) Сохранить альфа:
hsva(196, 59%, 76%, 0.8)Как работает преобразование HSLA в HSVA шаг за шагом
Преобразование из HSLA в HSVA в основном связано с изменением способа описания яркости и интенсивности. Обе модели используют оттенок и альфа аналогичным образом, но различаются в том, как они определяют вторую и третью оси.
hsla(210, 39%, 17%, 0.5)
-> hsl(210, 39%, 17%)
-> rgb(r, g, b)
-> hsv(h, s, v)
-> hsva(h, s, v, a)Вот более конкретный пример для hsla(210, 39%, 17%, 0.5).
- Шаг 1 - Интерпретируйте HSLA как RGB плюс альфа
На мгновение уберите альфа-канал и выполните алгоритм HSL в RGB. Это даст вам три числовых канала от 0 до 1, которые кодируют один и тот же цвет.
h = 210, s_l = 39, l = 17 rgb(26, 43, 60) после округления - Шаг 2 - Вычислите HSV из RGB
Используйте максимальные и минимальные каналы RGB для вычисления значения и насыщенности в терминах HSV. При желании пересчитайте оттенок из RGB, чтобы обеспечить числовую стабильность.
max = max(r', g', b') min = min(r', g', b') delta = max - min v = max if max == 0 then s_v = 0 else s_v = delta / max - Шаг 3 - Присоедините альфа и выразите как HSVA
Как только у вас есть оттенок, насыщенность и значение, используйте оригинальную альфу и запишите все вместе как hsva.
hsva(210, 57%, 24%, 0.5)
Та же последовательность работает для любого цвета HSLA, поэтому конвертер или вспомогательная функция обычно являются самым простым способом поддерживать синхронизацию инструментов на основе HSV с токенами на основе HSLA.
Выбор между HSLA и HSVA
HSLA и HSVA имеют одинаковые концепции оттенка и альфа, но сосредоточены на разных способах описания яркости и интенсивности. Каждая модель может быть более удобной в зависимости от того, над чем вы работаете.
Когда HSLA полезен
- Проектирование тем и палитр: Контроль на основе светлоты упрощает создание оттенков и теней из одного базового оттенка.
- Документирование дизайнерских решений: Значения HSLA четко показывают, как насыщенность и светлота изменяются в разных состояниях.
- Согласование светлых и темных режимов: Регулирование светлоты при сохранении стабильного оттенка — распространенный подход для кросс-тематической согласованности.
Когда HSVA лучше подходит
- Интерактивные цветовые пикеры: Ползунки для оттенка, насыщенности, значения и альфа интуитивно понятны для исследования цветов.
- Процедурные эффекты и градиенты: Контроль на основе значения иногда может казаться более естественным, чем светлота в сценариях рисования и освещения.
- Инструменты, которые уже используют HSV: Многие библиотеки и редакторы используют HSV в качестве своей основной модели управления.
Резюме
Используйте HSLA для планирования палитры и написанных спецификаций. Преобразуйте эти значения в HSVA, когда вы вставляете их в инструменты и компоненты, которые ожидают ползунки и элементы управления в стиле HSV.
Лучшие практики для совместного использования HSLA и HSVA
HSLA и HSVA могут сосуществовать в проекте, если вы определите четкие роли для каждой и полагаетесь на конвертеры вместо ручного редактирования.
Определите, где находится каждая модель
- Используйте HSLA для токенов и спецификаций: храните базовые цвета и состояния в виде значений HSLA, которые легко читать и обновлять.
- Используйте HSVA в инструментах и пикерах: представляйте ползунки HSV и элементы управления альфа в интерактивных интерфейсах и внутренних редакторах.
Сочетайте с другими цветовыми форматами
- Преобразуйте через RGB, когда это необходимо: переход между HSLA, HSVA, RGBA и HEXA обычно использует RGB в качестве промежуточного, что поддерживают большинство библиотек.
- Ограничивайте сгенерированные значения: всегда сохраняйте оттенок, насыщенность, светлоту, значение и альфа в допустимых диапазонах, когда вы генерируете или анимируете цветовые вариации.
Сохраняйте систему поддерживаемой
- Документируйте роли форматов: укажите, где ожидаются HSLA, HSVA, RGB и HEX, чтобы будущие изменения были простыми.
- Используйте утилиты преобразования: автоматизированные помощники поддерживают синхронизацию палитр между моделями и уменьшают количество ошибок.
С небольшим количеством структуры HSLA и HSVA усиливают друг друга, а не конкурируют, и ваша цветовая система остается более легкой для эволюции со временем.
Таблица преобразования HSLA в HSVA
В таблице ниже перечислены несколько знакомых цветов с прозрачностью как в формате HSLA, так и в формате HSVA. Числа округлены, чтобы их было легко читать; используйте конвертер в верхней части страницы, когда вам нужны точные значения.
| Описание | HSLA | HSVA |
|---|---|---|
| Белый 50% | hsla(0, 0%, 100%, 0.5) | hsva(0, 0%, 100%, 0.5) |
| Черный 50% | hsla(0, 0%, 0%, 0.5) | hsva(0, 0%, 0%, 0.5) |
| Красный 80% | hsla(0, 100%, 50%, 0.8) | hsva(0, 100%, 100%, 0.8) |
| Зеленый 40% | hsla(120, 100%, 50%, 0.4) | hsva(120, 100%, 100%, 0.4) |
| Синий 30% | hsla(240, 100%, 50%, 0.3) | hsva(240, 100%, 100%, 0.3) |
| Желтый 60% | hsla(60, 100%, 50%, 0.6) | hsva(60, 100%, 100%, 0.6) |
| Циан 70% | hsla(180, 100%, 50%, 0.7) | hsva(180, 100%, 100%, 0.7) |
| Магента 90% | hsla(300, 100%, 50%, 0.9) | hsva(300, 100%, 100%, 0.9) |
| Накладной серый | hsla(0, 0%, 7%, 0.5) | hsva(0, 0%, 7%, 0.5) |
| Мягкий серый | hsla(0, 0%, 20%, 0.5) | hsva(0, 0%, 20%, 0.5) |
| Граница панели | hsla(0, 0%, 33%, 0.5) | hsva(0, 0%, 33%, 0.5) |
| Акцентный оранжевый 70% | hsla(39, 100%, 50%, 0.7) | hsva(39, 100%, 100%, 0.7) |
| Фиолетовая наложение | hsla(300, 100%, 25%, 0.5) | hsva(300, 100%, 50%, 0.5) |
| Бирюзовая наложение | hsla(180, 100%, 25%, 0.5) | hsva(180, 100%, 50%, 0.5) |
Для любого другого значения HSLA вы можете использовать конвертер в верхней части страницы, чтобы вычислить соответствующий цвет HSVA, используя описанный выше алгоритм.
Часто задаваемые вопросы: HSLA в HSVA
- Почему преобразовывать HSLA в HSVA
Некоторые инструменты и библиотеки построены вокруг ползунков HSV, в то время как ваши дизайнерские токены могут использовать HSLA. Преобразование позволяет вам использовать правильную модель в каждом месте, не меняя внешний вид окончательных цветов.
- Определяют ли HSLA и HSVA разные цвета
Нет. Обе это разные способы описания одного и того же цветового пространства на основе RGB. Разница заключается в том, как определяются яркость и интенсивность, а не в том, какие цвета доступны.
- Меняется ли значение альфа во время преобразования
В типичных рабочих процессах значение альфа копируется напрямую из HSLA в HSVA, поскольку оба формата используют один и тот же диапазон от 0 до 1 для прозрачности.
- Могу ли я преобразовать HSVA обратно в HSLA
Да. Вы можете преобразовать HSVA в RGB, затем преобразовать RGB в HSL и повторно использовать значение альфа, чтобы снова получить HSLA.
- Является ли одна модель всегда лучше другой
Не совсем. HSLA, как правило, более удобен для проектирования палитр и документации, в то время как HSVA обычно лучше подходит для ползунков и интерактивных элементов управления. Нормально использовать обе модели в одном проекте с четкими правилами преобразования.
Связанные конвертеры:
Конвертер HEXA в HSLA
Мгновенный расчет hexa в hslaКонвертер HEXA в HSVA
Мгновенный расчет hexa в hsvaКонвертер RGBA в HSLA
Мгновенный расчет rgba в hslaКонвертер RGBA в HSVA
Мгновенный расчет rgba в hsvaКонвертер HSLA в HEXA
Мгновенный расчет hsla в hexaКонвертер HSVA в HSLA
Мгновенный расчет hsva в hsla