Hacker News Digest

25 августа 2025 г. в 12:33 • makingsoftware.com • ⭐ 202 • 💬 37

OriginalHN

#color-science#color-spaces#cie-xyz#rgb#srgb#cmyk#icc-profiles#gamut#hdr#python

What is a color space?

Цветовое пространство — это «карта» всех возможных цветов, которую может воспроизвести устройство.

1. Цвет ≠ свет

Свет — физическая волна, цвет — субъективное ощущение мозга. Один и тот же спектр может выглядеть по-разному у разных людей.

2. Глаз как камера

Сетчатка содержит три типа колбочек: S, M, L. Их сигналы превращаются в три числа (XYZ), описывающие цвет.

3. XYZ и «лошадиная подкова»

Международная система CIE-XYZ строит 2D-диаграмму всех видимых цветов. Внутри неё — треугольники sRGB, P3 и Rec.2020: чем больше треугольник, тем больше охват.

4. RGB — не просто «красный, зелёный, синий»

Каждое пространство задаёт точные координаты своих «красного», «зелёного» и «синего». Перекрасить изображение между пространствами можно матрицей 3×3, но если цвета выходят за границы треугольника, приходится «сжимать» их (rendering intent).

5. Гамма-кривая

Люди чувствуют свет нелинейно. Поэтому sRGB и большинство RGB-пространств применяют гамму ≈ 2.2, чтобы экономить биты и не хранить невидимые тени.

6. Не только RGB

  • HSV/HSL — удобны для палитр, но не физически точны.
  • LAB/LCH — основаны на восприятии, позволяют менять яркость без сдвига оттенка.
  • CMYK — субтрактивная модель печати, зависит от типа бумаги и чернил.

7. Профили и ICC

Файл .icc описывает, как устройство интерпретирует числа. Без профиля «255, 0, 0» может быть ярко-красным на одном экране и тусклым на другом.

8. Практические советы

  • Работайте в широком пространстве (P3/Rec.2020), экспортируйте в sRGB для веба.
  • Проверяйте «out-of-gamut» перед печатью.
  • Не используйте HSL для научных задач.