Конвертер RGB в HSV
Преобразуйте rgb(r, g, b) значения в HSV без изменения формул или таблиц. Этот инструмент полезен, когда вы работаете с CSS, выбором цветов или системами дизайна, которые описывают цвета через оттенок, насыщенность и значение.
Введите цвет в формате RGB, и вы сразу увидите соответствующий тройной HSV. Затем вы сможете рассуждать о цвете с точки зрения угла оттенка, его интенсивности и яркости, вместо того чтобы думать о трех отдельных каналах.
HSV — это популярная цветовая модель в графическом программном обеспечении и интерактивных выборках. На этой странице вы найдете краткий обзор RGB и HSV, четкую формулу для преобразования и справочную таблицу для общих значений.
Что такое RGB
RGB — это способ описания цветов как комбинации красного, зеленого и синего света. Каждый компонент записывается как десятичное значение от 0 до 255, где 0 означает отсутствие вклада от этого канала, а 255 означает полную интенсивность.
Когда три канала смешиваются вместе, они создают пиксели, которые вы видите на экранах. Например, rgb(255, 255, 255) дает белый цвет, rgb(0, 0, 0) — черный, а rgb(255, 0, 0) — чистый красный.
Поскольку RGB основан на числовых каналах, он удобен для кода: вы можете генерировать градиенты, динамически изменять каналы и анимировать цветовые переходы, просто изменяя числа.
Что такое HSV
HSV обозначает Оттенок, Насыщенность и Значение. Он организует цвет таким образом, который ближе к тому, как люди о нем говорят: какой это основной цвет, насколько сильно он ощущается и насколько ярким или темным он выглядит.
Оттенок измеряется в градусах от 0 до 360 и перемещается по цветовому кругу (например, красный около 0, зеленый около 120, синий около 240). Насыщенность и значение записываются в процентах от 0% до 100%.
Низкое значение насыщенности приближает цвет к серому. Низкое значение делает цвет темнее и ближе к черному. При высокой насыщенности и высоком значении цвет становится ярким и насыщенным, поэтому HSV часто используется в интерфейсах, где пользователи настраивают интенсивность цвета и яркость.
Формула RGB в HSV
rgb(r, g, b) -> hsv(h, s, v)
1) Normalize channels to [0, 1]:
r' = r / 255, g' = g / 255, b' = b / 255
2) Find max and min:
max = max(r', g', b')
min = min(r', g', b')
delta = max - min
3) Compute value:
v = max
4) Compute saturation:
if max == 0 then s = 0
else s = delta / max
5) 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)
6) Convert to final units:
H = h // degrees in [0, 360)
S = s * 100 // percentage
V = v * 100 // percentageАлгоритм сначала масштабирует компоненты RGB в диапазон от 0 до 1, затем смотрит, насколько они разбросаны. Этот разброс контролирует насыщенность, в то время как самый высокий канал определяет значение. Оттенок зависит от того, какой канал доминирует и как другие каналы сравниваются с ним.
Пример для rgb(79, 163, 194)
1) Нормализация:
r' = 79 / 255
g' = 163 / 255
b' = 194 / 255
2) Вычислите max, min, delta
3) Вычислите h, s, v по правилам выше
4) Округленный результат:
hsv(196, 59%, 76%)Как работает преобразование RGB в HSV шаг за шагом
Преобразование из RGB в HSV всегда следует одной и той же схеме: масштабируйте каналы, сравнивайте их друг с другом и используйте эти отношения для получения оттенка, насыщенности и значения.
rgb(26, 43, 60)
↓ ↓ ↓
[26, 43, 60] -> hsv(h, s, v)Вот более подробный взгляд на отдельные этапы для rgb(26, 43, 60).
- Шаг 1 — Нормализуйте каналы:
r' = 26 / 255 g' = 43 / 255 b' = 60 / 255 - Шаг 2 — Найдите максимум, минимум и дельту:
Эти три значения говорят вам, насколько ярким может быть цвет и насколько каналы разделены. Разница между максимумом и минимумом в конечном итоге формирует насыщенность.
max = max(r', g', b') min = min(r', g', b') delta = max - min - Шаг 3 — Вычислите H, S и V:
Используйте уравнения HSV, чтобы получить оттенок от доминирующего канала, затем вычислите насыщенность и значение. Наконец, преобразуйте насыщенность и значение в проценты, которые легче читать в документации и спецификациях дизайна.
hsv(210, 57%, 24%)
Та же рабочая схема подходит для любого допустимого цвета RGB: нормализуйте каналы, найдите их диапазон и примените формулы для получения представления HSV.
Где полезны RGB и HSV
RGB и HSV говорят об одних и тех же цветах с разных точек зрения. RGB сосредоточен на том, сколько красного, зеленого и синего света присутствует, в то время как HSV акцентирует внимание на том, какой оттенок выбран, насколько сильным является цвет и насколько ярким он выглядит на экране.
Типичные применения для RGB
- Программирование и анимации: три числовых канала легко манипулировать в JavaScript и CSS ключевых кадров.
- Работа с низкоуровенной графикой: многие API рендеринга и форматы изображений работают непосредственно с RGB значениями.
- Точный контроль: значения каналов от 0 до 255 обеспечивают тонкий контроль, когда вы генерируете или ограничиваете цвета в коде.
Типичные применения для HSV
- Выборщики цветов и палитры: ползунки для оттенка, насыщенности и значения естественно отображаются в модели HSV.
- Изучение вариаций: вы можете быстро создать более светлые, темные или мягкие версии базового цвета, изменяя насыщенность и значение.
- Настройка, удобная для человека: нетехническим пользователям часто проще регулировать цвет по его интенсивности и яркости, чем по трем числовым каналам.
Резюме
Используйте RGB, когда вам нужны явные числовые каналы для кода и эффектов. Выбирайте HSV, когда вы создаете выборщики, экспериментируете с палитрами или общаетесь о выборе цвета более визуальным способом.
Практические советы по использованию HSV вместе с RGB
Многие проекты хранят цвета в одной нотации, но думают о них в другой. Обычно токены определяются в RGB или HEX, в то время как в инструментах дизайна и выборщиках используется HSV для изучения вариаций.
Создайте палитры на основе HSV
- Фиксируйте оттенок, изменяйте насыщенность и значение: сохраняйте оттенок постоянным для цвета бренда и изменяйте насыщенность и значение, чтобы создать состояния, такие как наведение, нажатие и отключение.
- Используйте более низкую насыщенность для фонов: приглушенные версии оттенка часто лучше подходят для поверхностей и контейнеров, в то время как более высокая насыщенность работает для акцентов и элементов призыва к действию.
Перемещение между HSV и CSS нотациями
- Преобразуйте и заморозьте токены: используйте конвертер, чтобы перейти от HSV к RGB или HSL, а затем храните окончательные значения в одном формате в вашем таблице стилей или токенах дизайна.
- Обрабатывайте прозрачность отдельно: когда вам нужна непрозрачность, используйте
rgba()илиhsla()в CSS, но все равно выбирайте основной цвет в пространстве HSV.
Распространенные ошибки
- Смешивание многих форматов в одном файле: выберите один основной текстовый формат, такой как RGB или HSL, и конвертируйте только при необходимости.
- Смешение значения с яркостью: значение в HSV измеряет яркость относительно черного, что не то же самое, что яркость в HSL.
- Только изменение значения для глубины: лучшие результаты обычно достигаются при регулировке как насыщенности, так и значения, а не полагаясь на один ползунок.
С четкой стратегией, когда использовать RGB и когда думать в HSV, ваша цветовая система остается предсказуемой и легче поддерживается со временем.
Таблица преобразования RGB в HSV
Таблица ниже показывает набор знакомых цветов, записанных в форматах RGB и HSV. Значения округлены для удобочитаемости, поэтому они идеально подходят для быстрого справочного использования в повседневной работе.
| Описание | RGB | HSV |
|---|---|---|
| Белый | rgb(255, 255, 255) | hsv(0, 0%, 100%) |
| Черный | rgb(0, 0, 0) | hsv(0, 0%, 0%) |
| Красный | rgb(255, 0, 0) | hsv(0, 100%, 100%) |
| Зеленый | rgb(0, 255, 0) | hsv(120, 100%, 100%) |
| Синий | rgb(0, 0, 255) | hsv(240, 100%, 100%) |
| Желтый | rgb(255, 255, 0) | hsv(60, 100%, 100%) |
| Циан | rgb(0, 255, 255) | hsv(180, 100%, 100%) |
| Пурпурный | rgb(255, 0, 255) | hsv(300, 100%, 100%) |
| Серый 1 | rgb(17, 17, 17) | hsv(0, 0%, 7%) |
| Серый 2 | rgb(51, 51, 51) | hsv(0, 0%, 20%) |
| Серый 3 | rgb(85, 85, 85) | hsv(0, 0%, 33%) |
| Серый 4 | rgb(119, 119, 119) | hsv(0, 0%, 47%) |
| Серый 5 | rgb(153, 153, 153) | hsv(0, 0%, 60%) |
| Серый 6 | rgb(204, 204, 204) | hsv(0, 0%, 80%) |
| Оранжевый | rgb(255, 165, 0) | hsv(39, 100%, 100%) |
| Фиолетовый | rgb(128, 0, 128) | hsv(300, 100%, 50%) |
| Бирюзовый | rgb(0, 128, 128) | hsv(180, 100%, 50%) |
Для точной работы вы всегда можете использовать конвертер в верхней части страницы, который следует стандартному алгоритму RGB в HSV для любого допустимого ввода.
Часто задаваемые вопросы: RGB в HSV
- Почему я должен преобразовывать RGB в HSV
RGB отлично подходит для хранения и низкоуровневой работы, но HSV облегчает регулировку интенсивности цвета и яркости. Переход между форматами позволяет вам воспользоваться обоими способами мышления о цвете.
- Какие диапазоны используют H, S и V
Оттенок записывается в градусах от 0 до 360. Насыщенность и значение — это проценты от 0 до 100 процентов, поэтому большинство выборщиков отображают их как ползунки с процентной меткой.
- Изменяет ли преобразование цвет
Нет. RGB и HSV оба описывают одно и то же цветовое пространство. Допустимая тройка RGB и ее соответствующая HSV представляют один и тот же визуальный цвет; только нотация различается.
- Чем HSV отличается от HSL
Обе модели имеют оттенок и насыщенность, но третье значение не одно и то же. HSL использует яркость, которая сравнивает цвет как с черным, так и с белым, в то время как HSV использует значение, которое сравнивает цвет только с черным.
- Могу ли я смешивать RGB, HSV и другие форматы в одном проекте
Да. Общий подход заключается в том, чтобы выбрать один основной текстовый формат для токенов, такой как HEX или HSL, и конвертировать в HSV в инструментах или утилитах, когда вам нужен более интуитивный контроль. Главное — поддерживать систему последовательной и полагаться на конвертеры вместо ручных расчетов.