Конвертер HEX в HSV
Преобразует цветовые коды HEX в значения HSV без ручных расчётов. Подходит для веб-разработчиков, дизайнеров и всех, кому нужно быстро и точно переходить между HEX и HSV.
Введите цвет в формате HEX, и вы увидите соответствующее значение HSV. HSV описывает тот же цвет, что и HEX или RGB, но через оттенок, насыщенность и яркость, что часто проще для правок.
Модель HSV широко используется в палитрах и графических редакторах. На этой странице разобрано, как работает HSV и как пошагово перевести любой HEX-цвет в HSV.
Что такое HEX-код цвета
HEX-цвет — это компактная запись значений RGB в шестнадцатеричной системе счисления. Он записывается в формате #RRGGBB, где каждая пара символов отвечает за один канал: красный, зелёный или синий.
Каждая пара принимает значения от 00 до FF. Значения ближе к 00 означают низкую интенсивность канала, ближе к FF — высокую. Например, #000000 отключает все каналы и даёт чёрный цвет, а #FFFFFF устанавливает максимальные значения и даёт белый.
Браузер читает HEX-строку, разбивает её на три части и переводит каждую в десятичное число от 0 до 255. В результате получается RGB-тройка, с которой работает движок рендеринга. HEX — это текстовое представление RGB, удобное для CSS и дизайн-инструментов.
Что такое HSV
HSV расшифровывается как Hue (оттенок), Saturation (насыщенность) и Value (яркость). Это цветовая модель, которая описывает цвет через базовый тон, насыщенность и общую яркость, а не через отдельные каналы RGB.
Оттенок задаётся в градусах от 0 до 360 по цветовому кругу. Насыщенность и яркость задаются в процентах от 0% до 100%. Насыщенность определяет, насколько цвет яркий или серый, а яркость — насколько он светлый по отношению к чёрному.
При низкой насыщенности цвет уходит в серый, при низкой яркости становится тёмным и близким к чёрному. Увеличение яркости делает цвет светлее, а увеличение насыщенности — более интенсивным. Вместе эти параметры образуют значения HSV, например hsv(210, 50%, 70%).
Формула преобразования HEX в HSV
#RRGGBB -> hsv(h, s, v)
1) Convert each pair to decimal:
RR, GG, BB -> r, g, b in [0, 255]
2) Normalize to the range [0, 1]:
r' = r / 255, g' = g / 255, b' = b / 255
3) Find max and min of r', g', b':
max = max(r', g', b')
min = min(r', g', b')
delta = max - min
4) Compute value:
v = max
5) Compute saturation:
if max == 0 then s = 0
else s = delta / max
6) Compute hue:
if delta == 0 then h = 0
else if max == r' then h = 60 * (((g' - b') / delta) mod 6)
else if max == g' then h = 60 * (((b' - r') / delta) + 2)
else if max == b' then h = 60 * (((r' - g') / delta) + 4)
7) Convert h to [0, 360), s and v to percentages:
H = h
S = s * 100
V = v * 100Алгоритм начинается с преобразования HEX в RGB, нормализации каналов и вычисления оттенка, насыщенности и яркости на основе разницы между минимальным и максимальным значениями каналов. Результат — HSV-тройка, описывающая тот же цвет в более наглядной форме.
Пример для #4FA3C2
1) HEX в RGB:
#4FA3C2 -> (79, 163, 194)
2) Нормализация:
r' = 79 / 255
g' = 163 / 255
b' = 194 / 255
3) Вычислите max, min, delta, затем h, s, v
4) Итоговый HSV (округлённый):
hsv(196, 59%, 76%)Как работает преобразование HEX в HSV по шагам
При преобразовании HEX в HSV всегда используется промежуточное представление RGB. HEX-значение разбивается на три пары, переводится в десятичные числа и затем подставляется в формулу HSV.
#1A2B3C
разделить на [1A, 2B, 3C]
-> rgb(26, 43, 60)
-> hsv(h, s, v)Ниже показаны основные шаги на примере цвета #1A2B3C.
- Шаг 1 — Разделить HEX-значение
[1A] [2B] [3C] - Шаг 2 — Перевести каждую пару в десятичное число
Каждая пара символов — это шестнадцатеричное число. После перевода в десятичную систему получаются значения каналов RGB в диапазоне от 0 до 255, которые используются в формуле HSV.
1A = (1 * 16) + 10 = 26 2B = (2 * 16) + 11 = 43 3C = (3 * 16) + 12 = 60 - Шаг 3 — Преобразовать RGB в HSV
Значения RGB нормализуются в диапазон от 0 до 1, затем вычисляются максимум, минимум и разница между ними. После этого применяются формулы для H, S и V, а насыщенность и яркость переводятся в проценты.
hsv(210, 57%, 24%)
Тот же процесс применяется к любому корректному HEX-цвету: перевод в RGB, вычисление HSV и округление результата до нужной точности для CSS или дизайн-системы.
Где используются HEX и HSV
HEX и HSV описывают одно и то же цветовое пространство с разных сторон. HEX — компактный формат, привычный разработчикам, а HSV ближе к тому, как цвет воспринимается при работе с ползунками и цветовыми кругами.
Когда использовать HEX
- Короткие цветовые токены: HEX-значения легко читать и копировать, поэтому они хорошо подходят для токенов и документации.
- Статичные палитры: Если цвет редко меняется, одной HEX-строки достаточно, и код остаётся аккуратным.
- Совместимость с инструментами: Большинство графических редакторов и браузеров напрямую принимают HEX, поэтому это безопасный формат по умолчанию.
Когда использовать HSV
- Интерактивные палитры: Во многих палитрах оттенок представлен кругом, а насыщенность и яркость — ползунками, что напрямую соответствует модели HSV.
- Создание вариаций: Можно легко получить более светлые, тёмные или менее насыщенные варианты базового цвета, меняя только S и V.
- Подбор палитр: При экспериментировании с цветами правка HSV часто понятнее, чем работа с тремя независимыми каналами RGB.
Итог
Используйте HEX, когда нужны компактные и стабильные коды цветов. Выбирайте HSV при работе с палитрами, генерации цветовых шкал и настройке яркости и насыщенности. Форматы можно свободно преобразовывать друг в друга без потери информации.
Практические советы по использованию HSV в CSS и дизайн-инструментах
CSS напрямую работает с RGB и HSL, но многие дизайнеры мыслят через HSV, так как именно его показывают большинство палитр. Эти советы помогают переключаться между форматами без путаницы.
Связь HSV с дизайн-системой
- Выберите базовый оттенок: Зафиксируйте один оттенок для брендового цвета и меняйте насыщенность и яркость для состояний hover, active и disabled.
- Используйте насыщенность для акцентов: Снижайте насыщенность для фонов и повышайте её для основных действий и акцентов.
Переход между HSV и другими форматами
- Преобразуйте один раз: Используйте конвертер для перевода HSV в HEX или HSL и храните итоговые значения в одном формате внутри проекта.
- Храните прозрачность отдельно: Если нужна прозрачность, используйте RGBA или HSLA в CSS, но базовый цвет подбирайте в HSV.
Частые ошибки
- Путаница между value и lightness: В HSV параметр value показывает яркость относительно чёрного, а не баланс между чёрным и белым, как в HSL.
- Использование только яркости: Меняйте насыщенность вместе с яркостью, чтобы избежать блеклых или слишком резких цветов.
- Смешивание форматов: Выберите один основной формат (HEX, RGB или HSL) и используйте HSV только для подбора и расчётов.
Следование этим правилам делает работу с цветами более предсказуемой и упрощает поддержку, даже при использовании разных инструментов и цветовых моделей.
Таблица преобразования HEX в HSV
В таблице ниже приведены распространённые HEX-цвета и их значения HSV. Включены основные цвета, оттенки серого и несколько значений, часто встречающихся в интерфейсах.
| Описание | HEX | HSV |
|---|---|---|
| Белый | #FFFFFF | hsv(0, 0%, 100%) |
| Чёрный | #000000 | hsv(0, 0%, 0%) |
| Красный | #FF0000 | hsv(0, 100%, 100%) |
| Зелёный | #00FF00 | hsv(120, 100%, 100%) |
| Синий | #0000FF | hsv(240, 100%, 100%) |
| Жёлтый | #FFFF00 | hsv(60, 100%, 100%) |
| Голубой | #00FFFF | hsv(180, 100%, 100%) |
| Пурпурный | #FF00FF | hsv(300, 100%, 100%) |
| Серый 1 | #111111 | hsv(0, 0%, 7%) |
| Серый 2 | #333333 | hsv(0, 0%, 20%) |
| Серый 3 | #555555 | hsv(0, 0%, 33%) |
| Серый 4 | #777777 | hsv(0, 0%, 47%) |
| Серый 5 | #999999 | hsv(0, 0%, 60%) |
| Серый 6 | #CCCCCC | hsv(0, 0%, 80%) |
| Светло-серый | #F0F0F0 | hsv(0, 0%, 94%) |
| UI-серый | #E0E0E0 | hsv(0, 0%, 88%) |
| Тёмный UI-серый | #1A1A1A | hsv(0, 0%, 10%) |
| Тёмно-красный | #800000 | hsv(0, 100%, 50%) |
| Тёмно-зелёный | #008000 | hsv(120, 100%, 50%) |
| Тёмно-синий | #000080 | hsv(240, 100%, 50%) |
| Оранжевый | #FFA500 | hsv(39, 100%, 100%) |
| Фиолетовый | #800080 | hsv(300, 100%, 50%) |
| Бирюзовый | #008080 | hsv(180, 100%, 50%) |
Значения HSV в таблице округлены для удобства чтения. Для точных расчётов используйте конвертер для любого корректного HEX-цвета.
FAQ: HEX → HSV
- Зачем переводить HEX в HSV
HEX удобен для хранения цветовых токенов, но HSV проще при настройке яркости и насыщенности. Преобразование позволяет сочетать компактность и контроль.
- В каких диапазонах задаются H, S и V
Оттенок задаётся в градусах от 0 до 360. Насыщенность и яркость — в процентах от 0 до 100. Во многих инструментах HSV отображается как три числовых поля или ползунка.
- Точнее ли HSV, чем HEX или RGB
Нет. Все эти форматы описывают один и тот же набор цветов. Разница только в способе представления и удобстве ручной правки.
- Чем HSV отличается от HSL
В обеих моделях используются оттенок и насыщенность, но третий параметр разный. В HSL это lightness — баланс между чёрным и белым, а в HSV — value, яркость относительно чёрного.
- Можно ли использовать HEX, HSV, RGB и HSL в одном проекте
Да. Часто выбирают один основной формат для токенов, а остальные используют при необходимости. Главное — сохранять единый подход и использовать конвертеры вместо ручных расчётов.