
Математика преобразования OKLCH в RGB
Глубокое погружение в математику преобразования цветовой модели OKLCH в RGB с интерактивным инструментом конвертации.
Введение
По мере роста поддержки цветовой модели OKLCH, растет и необходимость понимать, как она соотносится с вездесущей моделью RGB. Хотя OKLCH предлагает превосходную перцептивную равномерность и доступ к цветам с широким охватом, наши экраны (в основном) все еще работают с субпикселями RGB.
В этой статье мы рассмотрим математическое путешествие преобразования цвета OKLCH в стандартное пространство sRGB, используемое большинством веб-устройств.
Интерактивный конвертер
Прежде чем мы углубимся в математику, попробуйте процесс конвертации самостоятельно! Отрегулируйте ползунки Светлоты (Lightness), Хромы (Chroma) и Оттенка (Hue) ниже, чтобы увидеть, как они отображаются в шестнадцатеричном коде RGB.
Конвейер преобразования
Преобразование OKLCH в RGB — это не один шаг; оно включает в себя серию трансформаций через различные цветовые пространства.
Шаг 1: OKLCH в OKLab
Сначала нам нужно преобразовать цилиндрические координаты OKLCH (Светлота, Хрома, Оттенок) обратно в декартовы координаты OKLab (L, a, b).
- L остается прежним.
- a (зеленый-красный) вычисляется с использованием косинуса:
- b (синий-желтый) вычисляется с использованием синуса:
(Примечание: Убедитесь, что H выражен в радианах для этих вычислений.)
Шаг 2: OKLab в Линейный RGB (Linear RGB)
Далее мы переходим из перцептивного пространства OKLab в «Линейное» пространство RGB. Это преобразование происходит в три подэтапа:
2.1 OKLab в LMS (Реакция колбочек)
Сначала мы преобразуем координаты L, a, b в промежуточную область LMS с использованием специальной матрицы:
2.2 Нелинейность LMS
Модель OKLab использует нелинейность кубического корня. Чтобы вернуться к линейной интенсивности света, мы должны возвести полученные значения LMS в куб:
2.3 LMS в Линейный RGB
Наконец, мы преобразуем эти линейные значения LMS в Линейный RGB с использованием другого матричного преобразования:
Шаг 3: Линейный RGB в sRGB (Гамма-коррекция)
Наконец, большинство экранов требуют сигналов с «гамма-коррекцией». Это потому, что человеческий глаз более чувствителен к темным оттенкам, чем к светлым.
Стандартное преобразование sRGB использует передаточную функцию:
- Если значение очень мало (), умножьте на 12.92.
- В противном случае возведите его в степень и примените масштабирование.
Этот последний шаг дает нам знакомые значения 0-255 (после масштабирования) для Красного, Зеленого и Синего.
Пример расчета
Давайте проследим oklch(60% 0.15 250) через этот конвейер:
-
В OKLab:
-
В Линейный RGB (после матричного преобразования):
-
В sRGB (после гамма-коррекции):
- Hex:
#2784D5
Заключение
Понимание этих преобразований подчеркивает сложность, скрытую за простым объявлением цвета CSS. Хотя современные браузеры обрабатывают это автоматически, знание математики дает нам более глубокое понимание точности цифровой науки о цвете.
Больше Постов

Откройте для себя яркие цвета с OKLCH
Узнайте, как цветовая модель OKLCH обеспечивает современное, перцептивно равномерное цветовое пространство, раскрывающее весь потенциал вашего дисплея.

Освоение цвета с помощью модели HSV
Поймите Оттенок, Насыщенность и Значение для более интуитивного выбора цвета.

Понимание цветовой модели RGB
Глубокое погружение в то, как Красный, Зеленый и Синий объединяются для создания цветов на вашем экране.

