Конвертер HSVA в HEXA

Преобразуйте hsva(h, s, v, a) цвета в HEXA коды без ручных вычислений. Этот конвертер полезен, когда цвета описаны в HSVA в ваших выборках или помощниках, но вы хотите сохранить конечные токены в формате #RRGGBBAA.

Введите цвет в формате HSVA, и вы мгновенно получите соответствующую строку HEXA. Вы можете скопировать это значение в токены темы, конфигурации или заметки.

На этой странице вы также увидите краткий обзор HSVA и HEXA, четкое описание шагов преобразования, пример, небольшую справочную таблицу и ответы на часто задаваемые вопросы о том, когда каждый формат подходит лучше всего.

Что такое HSVA

HSVA — это модель HSV с альфа-каналом. Она может быть записана как hsva(h, s, v, a), где h — это оттенок в градусах, s — насыщенность в процентах, v — значение в процентах, а a — непрозрачность.

Оттенок варьируется от 0 до 360, насыщенность и значение находятся в диапазоне от 0% до 100%, а альфа — это дробь от 0 (полностью прозрачный) до 1 (полностью непрозрачный).

HSVA популярен в редакторах и выборках цветов, потому что оттенок, насыщенность, яркость и прозрачность представлены в виде простых ползунков, которые естественно воспринимаются при исследовании и настройке цветов.

Что такое HEXA цветовой код

Значение HEXA — это восьмизначный HEX цвет с дополнительной парой альфа. Общая форма — #RRGGBBAA, где RR, GG, BB и AA описывают красный, зеленый, синий и альфа-каналы.

Каждая пара — это число в шестнадцатеричном формате от 00 до FF. Первые три пары ведут себя как обычный код #RRGGBB, в то время как последняя устанавливает непрозрачность: 00 для полностью прозрачного и FF для полностью непрозрачного, с промежуточными значениями.

Когда браузер считывает строку HEXA, он преобразует каждую пару в десятичное значение и затем обрабатывает результаты как RGBA каналы. Это делает HEXA компактным форматом для цветов с прозрачностью, который хорошо вписывается в токены и конфигурации.

Формула преобразования HSVA в HEXA

hsva(h, s, v, a) -> #RRGGBBAA

Given:
  h in [0, 360)
  s in [0, 100]
  v in [0, 100]
  a in [0, 1]

1) Clamp inputs:
   h_c = h
   s_c = clamp(s, 0, 100)
   v_c = clamp(v, 0, 100)
   a_c = clamp(a, 0, 1)

2) Normalize saturation and value:
   s' = s_c / 100
   v' = v_c / 100

3) Compute chroma:
   c = v' * s'

4) Helper value:
   x = c * (1 - |((h_c / 60) mod 2) - 1|)

5) Temporary rgb triple in [0, c]:
   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)

6) Add the value based offset:
   m  = v' - c
   r' = r1 + m
   g' = g1 + m
   b' = b1 + m

7) Scale to integer RGB:
   r = round(r' * 255)
   g = round(g' * 255)
   b = round(b' * 255)

8) Convert channels to HEX:
   RR = dec_to_hex(clamp(r, 0, 255))
   GG = dec_to_hex(clamp(g, 0, 255))
   BB = dec_to_hex(clamp(b, 0, 255))

9) Convert alpha to HEX:
   A_dec = round(a_c * 255)
   AA    = dec_to_hex(clamp(A_dec, 0, 255))

10) Join parts:
   #RRGGBBAA

Helpers:
   dec_to_hex(x) = to_hex(x).padStart(2, "0")
   clamp(x, min, max) = min if x < min, max if x > max, else x

На практике конвертер сначала восстанавливает RGB цвет из HSVA, затем переписывает все четыре канала как шестнадцатеричные пары из двух цифр. Доля альфа умножается на 255, округляется и превращается в финальную пару AA.

Пример для hsva(196, 59%, 76%, 0.8)
1) Преобразование HSVA в RGB:
   hsv(196, 59%, 76%) -> rgb(79, 163, 194) (округлено)
2) Преобразование RGB каналов в HEX:
   79  -> 4F
   163 -> A3
   194 -> C2
3) Преобразование альфа:
   A_dec = round(0.8 * 255) = 204
   204   -> CC
4) Итоговый HEXA:
   #4FA3C2CC

Как работает преобразование HSVA в HEXA шаг за шагом

Преобразование HSVA в HEXA всегда следует одному и тому же пути: выразите цвет как RGB, преобразуйте числа в шестнадцатеричные пары и оставьте альфа как отдельный канал, выраженный в последней паре.

hsva(210, 57%, 24%, 0.5)
-> hsv(210, 57%, 24%)
-> rgb(r, g, b)
-> #RRGGBBAA

Ниже приведен компактный набросок для hsva(210, 57%, 24%, 0.5).

  • Шаг 1 - Нормализуйте насыщенность и значение

    Преобразуйте процентные значения во дроби и вычислите хроматичность, которая показывает, насколько цвет удаляется от нейтрального серого для выбранной яркости.

    s' = 57 / 100
    v' = 24 / 100
    c = v' * s'
  • Шаг 2 - Выберите сектор оттенка и временную тройку

    Разделите оттенок на 60, чтобы найти сектор на цветовом круге, затем выберите одну из временных троек, таких как (c, x, 0) или (0, x, c). Это устанавливает относительную долю красного, зеленого и синего до добавления окончательного смещения.

    h = 210
    h / 60 is between 3 and 4
    temporary triple uses (0, x, c)
    ... -> rgb(26, 43, 60) (rounded)
  • Шаг 3 - Добавьте смещение, масштабируйте и добавьте альфа

    Добавьте смещение m, чтобы самый яркий канал соответствовал запрашиваемому значению, масштабируйте каналы до диапазона от 0 до 255, преобразуйте их в шестнадцатеричные пары и закодируйте ту же альфу в финальной паре AA.

    #1A2B3C80

Эти шаги работают для любого допустимого цвета HSVA, поэтому конвертер или вспомогательная функция — это хороший вариант вместо того, чтобы повторять последовательность вручную для каждого нового значения.

Выбор между HSVA и HEXA

HSVA и HEXA оба описывают цвет с прозрачностью, но делают это по-разному. HSVA сосредоточен на оттенке и интуитивных ползунках, в то время как HEXA компактен и основан на RGB числах.

Когда HSVA лучше подходит

  • Интерактивные редакторы и элементы управления: ползунки оттенка, насыщенности, значения и альфа ощущаются естественно, когда вы исследуете и настраиваете цвета.
  • Процедурные наборы цветов: удобно создавать более светлые, темные или более яркие варианты, изменяя насыщенность и значение, сохраняя при этом стабильный оттенок.
  • Инструменты, ориентированные на дизайн: HSVA соответствует тому, как люди обычно описывают яркость и насыщенность цвета.

Когда HEXA более практичен

  • Дизайн токены и файлы тем: короткие #RRGGBBAA строки легко хранить в JSON, форматах конфигурации и документации.
  • Совместимость с экспортом дизайна: многие редакторы могут напрямую выводить HEX коды с альфа, которые вы можете сохранить как единственный источник правды.
  • Статические палитры: HEXA хорошо работает, когда вы собираете длинные списки брендовых и семантических цветов.

Резюме

Используйте HSVA, когда люди настраивают цвета вручную, и преобразуйте их в HEXA, когда вам нужны компактные, удобные для обмена токены для хранения и повторного использования.

Лучшие практики использования HSVA и HEXA вместе

Обычно в одном проекте используются HSVA и HEXA, если вы решите, какой формат используется для редактирования, а какой — для хранения.

Разделите роли редактирования и хранения

  • Используйте HSVA в инструментах и выборках: внутренние интерфейсы могут позволить пользователям перемещать ползунки оттенка, насыщенности, значения и альфа, а затем преобразовывать результат при сохранении.
  • Используйте HEXA в токенах: храните брендовые, семантические и цветовые темы как #RRGGBBAA строки в вашем источнике правды дизайна.

Сочетайте с другими цветовыми моделями

  • Преобразуйте через RGB: переход между HSVA, HEXA, RGBA и HSLA обычно проходит через RGB математику, которую поддерживают большинство библиотек.
  • Ограничивайте значения осторожно: держите оттенок, насыщенность, значение и альфа в допустимых диапазонах, когда вы генерируете или анимируете цвета.

Сохраняйте систему предсказуемой

  • Документируйте, где находятся форматы: опишите, где используется HSVA (инструменты) и где хранится HEXA (токены), чтобы будущие изменения оставались последовательными.
  • Используйте конвертеры вместо ручных правок: вспомогательные функции и скрипты уменьшают ошибки копирования и вставки и поддерживают синхронизацию всех представлений.

С четким разделением между интерактивными моделями и форматами хранения HSVA и HEXA могут дополнять друг друга в одном коде без трения.

Таблица преобразования HSVA в HEXA

В таблице ниже перечислены несколько знакомых HSVA цветов с прозрачностью и их версии HEXA. Значения округлены для ясности, поэтому используйте конвертер в верхней части страницы, когда вам нужны точные числа.

Справочная таблица HSVA в HEXA
ОписаниеHSVAHEXA
Белый 50%hsva(0, 0%, 100%, 0.5)#FFFFFF80
Черный 50%hsva(0, 0%, 0%, 0.5)#00000080
Красный 80%hsva(0, 100%, 100%, 0.8)#FF0000CC
Зеленый 40%hsva(120, 100%, 100%, 0.4)#00FF0066
Синий 30%hsva(240, 100%, 100%, 0.3)#0000FF4D
Желтый 60%hsva(60, 100%, 100%, 0.6)#FFFF0099
Циан 70%hsva(180, 100%, 100%, 0.7)#00FFFFB3
Пурпурный 90%hsva(300, 100%, 100%, 0.9)#FF00FFE6
Наложение серогоhsva(0, 0%, 7%, 0.5)#11111180
Мягкий серыйhsva(0, 0%, 20%, 0.5)#33333380
Граница панелиhsva(0, 0%, 33%, 0.5)#55555580
Акцентный оранжевый 70%hsva(39, 100%, 100%, 0.7)#FFA500B3
Пурпурное наложениеhsva(300, 100%, 50%, 0.5)#80008080
Бирюзовое наложениеhsva(180, 100%, 50%, 0.5)#00808080

Для любой другой комбинации HSVA вы можете использовать конвертер выше, чтобы вычислить точную строку HEXA с тем же стандартным алгоритмом.

Часто задаваемые вопросы: HSVA в HEXA

  • Почему преобразовывать HSVA в HEXA

    HSVA отлично подходит для редактирования цветов с помощью ползунков, но многие руководства по стилю и наборы токенов предпочитают короткие строки на основе HEX. Преобразование позволяет вам сохранять интерактивные элементы управления в HSVA, сохраняя цвета в формате HEXA.

  • Изменяет ли преобразование, как выглядит цвет

    Нет. Правильно вычисленный код HEXA представляет тот же цвет и прозрачность, что и оригинальное значение HSVA, за исключением небольшого округления числовых каналов.

  • Какие диапазоны используются для H, S, V и A в HSVA

    Оттенок измеряется в градусах от 0 до 360, насыщенность и значение — в процентах от 0% до 100%, а альфа — это число от 0 до 1.

  • Могу ли я преобразовать HEXA обратно в HSVA

    Да. Вы можете декодировать HEX пары в RGB и альфа, выполнить преобразование RGB в HSV и повторно использовать компонент альфа для восстановления HSVA.

  • Должны ли токены храниться как HSVA или HEXA

    Это зависит от вашего рабочего процесса. Некоторые команды хранят значения HSVA в спецификациях темы и генерируют коды HEXA, другие хранят HEXA как источник правды и показывают HSVA только в инструментах. Главное — выбрать один основной формат и автоматизировать преобразование в другой.

Связанные конвертеры: