Как можно перевести цветовую смесь из формата color-mix в формат rgb/hex?

Конкретизируйте, пожалуйста, как можно сконвертировать цвет, заданный через `color-mix` в форматы RGB или HEX. Имея множество CSS-переменных определенного формата, как преобразовать их из `color-mix(in srgb, magenta, aqua)` в `#8080ff` или `rgb(128 128 255)`? В результате `getComputedStyle` возвращается значение в формате `'color(srgb 0.5 0.5 1)'`. Как можно автоматизировать этот процесс, аналогичный инструменту DevTools в Chrome, который показывает HEX-цвет при наведении курсора? 
  • 20 мая 2024 г. 7:50
Ответы на вопрос 2
Для конвертации цветовой смеси из формата `color-mix` в форматы RGB или HEX можно воспользоваться следующими шагами:

1. Получить значения красного, зеленого и синего каналов из цветовой смеси `color-mix`.
2. Преобразовать эти значения в диапазоне от 0 до 1 в диапазон от 0 до 255 для формата RGB или в шестнадцатеричную систему для формата HEX.
3. Составить строку в соответствующем формате (например, `rgb(128, 128, 255)` или `#8080ff`).

Чтобы автоматизировать этот процесс и получать HEX-цвет при наведении курсора на цветовую смесь, можно написать скрипт, который будет извлекать значения красного, зеленого и синего каналов из строки `color-mix`, преобразовывать их и выводить итоговый цвет в формате HEX. Этот скрипт можно использовать в DevTools или расширении для браузера, чтобы получать HEX-значения цветов автоматически.
getComputedStyleвозвращает значение в формате 'color(srgb 0.5 0.5 1)'

Выловить отсюда 3 числа регексом, каждое умножить на 255 и округлить, вот собственно они и есть.
Но это, насколько я понимаю, для "in srgb". У тебя ведь такие?
Похожие вопросы