Преобразование цветов между цветовыми пространствами - PullRequest
2 голосов
/ 13 октября 2011

Я создаю библиотеку, которая позволяет преобразовывать следующие цветовые пространства:

HSV, HLS, RGB, CMYK, HEX

До сих пор у меня реализованы следующие преобразования:

HSV -> HLS

HSV -> RGB

HSV -> CMYK (HSV -> RGB -> CMYK :: см. Примечание)

RGB -> HSV

RGB -> HLS

RGB -> CMYK

RGB -> HEX

HLS -> RGB

HLS -> HSV

HLS -> CMYK (HLS -> RGB -> CMYK :: см. Примечание)

CMYK -> RGB

CMYK -> HSV (CMYK -> RGB -> HSV :: см. Примечание)

CMYK -> HLS (CMYK -> RGB -> HLS :: см. Примечание)

Примечание: HSV и HSL нельзя напрямую преобразовать в CMYK, поскольку они не являются абсолютными цветовыми пространствами. Им нужны элементы пространства RGB, чтобы преобразование в CMYK имело смысл. ( CMYK цвет к HSV цвет напрямую )

Сейчас я должен реализовать все преобразования HEX:

HEX <-> RGB

HEX <-> HSV

HEX <-> HLS

HEX <-> CMYK

Преобразование между HEX и RGB просто, и я его реализовал. Что меня беспокоит, так это преобразования HEX <-> HSV и HEX <-> HLS. Существует ли прямой способ преобразования HEX в HSV и HSL или мне нужно использовать HEX -> RGB -> HSV / HLS? А как насчет HEX <-> CMYK?

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 13 октября 2011

Как правило, значения HEX - это просто представления HEX значений каждого отдельного канала, соединенных вместе.Если все ваши цвета представлены 8 битами и вы ищете HEX-представление, которое можно использовать в HTML, это будет выглядеть так:

Color  8 bit            HEX value
---------------------------------
RGB    255,128,0        FF8000
CMYK   255,128,255,128  FF80FF80
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...