P
pro·school.ru
Каталог школ

Кодирование цвета в модели RGB

💻 Информатика · 7 класс

Как кодируют цвет

Цвет точки на экране нельзя хранить «как есть» — компьютер работает только с числами. Поэтому цвет раскладывают на составляющие и каждую записывают числом. Самая распространённая модель — RGB: любой цвет получается смешением трёх основных — красного (red), зелёного (green) и синего (blue). Такое смешение называют аддитивным, потому что цвета складываются, добавляя света. Именно так устроены экраны телефонов, телевизоров и мониторов: каждая точка светится тремя цветами сразу.

Яркость каждого канала

Яркость каждой из трёх составляющих задаётся числом от 0 до 255. Ноль означает, что составляющей нет совсем, а 255 — что она светит на полную силу. На каждый канал отводится один байт (8 битов), а всего на пиксель — три байта, то есть 24 бита. Поэтому такой режим называют истинным цветом. Меняя три числа, можно получить любой оттенок, который различает человеческий глаз.

КрасныйЗелёныйСинийИтоговый цвет
000чёрный
255255255белый
25500красный
02550зелёный
2552550жёлтый

Обратите внимание: чёрный цвет — это полное отсутствие света (все нули), а белый — наоборот, свет всех трёх каналов на максимуме. Серый получается, когда все три значения равны между собой, но не на максимуме, например 128, 128, 128.

Сколько всего цветов

Раз каждый канал принимает 256 значений, всего цветов получается:

256 × 256 × 256 = 16 777 216 цветов

Это число часто округляют до «16 миллионов цветов». Его же можно получить через биты: 2 в степени 24 = 16 777 216, ведь на пиксель отведено 24 бита. Число различимых цветов напрямую зависит от глубины цвета: чем больше битов на пиксель, тем богаче палитра.

Пример вычисления объёма

Найдём, сколько памяти займёт картинка размером 100 на 50 пикселей в режиме истинного цвета.

пикселей: 100 × 50 = 5000 на пиксель: 3 байта объём: 5000 × 3 = 15 000 байт ≈ 14,6 Кбайт

Если бы каждый пиксель кодировали не тремя байтами, а одним (256 цветов), объём оказался бы втрое меньше, но и цветов стало бы гораздо меньше. Так на практике выбирают между качеством картинки и её размером.

Частые ошибки. Считают, что значение канала может быть больше 255. Путают аддитивную модель (свет складывается) с красками (где смешение делает темнее). Берут на пиксель один байт вместо трёх при истинном цвете. Думают, что белый — это нули, хотя нули дают чёрный.

Кратко о главном

  • В модели RGB цвет складывается из красной, зелёной и синей составляющих.
  • Каждая составляющая задаётся числом от 0 до 255 — это один байт.
  • В истинном цвете на пиксель уходит 3 байта (24 бита).
  • Всего получается 16 777 216 цветов.
  • Чёрный — это все нули, белый — все составляющие на максимуме.