"Информатика (в 2-х частях)", Горячев А.В., Макарина Л.А., Паволоцкий А.В., Платонова Н.С.
Компьютеру нужно записывать цвет числами, чтобы хранить изображение, показывать его на экране или печатать. Для этого используют цветовые модели: RGB описывает смешение красного, зелёного и синего света, а CMYK — работу цветных красок. Палитра ограничивает набор доступных оттенков, а глубина цвета показывает, сколько бит отведено на один пиксель. Эти понятия помогают понять, как кодируются изображения и почему их файлы занимают разный объём памяти.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Цветовая модель — способ представления цвета с помощью набора числовых компонентов. Она нужна, чтобы компьютер мог одинаково записывать, хранить и передавать цвета, а программы и устройства понимали эти числа. Модель задаёт, какие именно компоненты описывают цвет и как их сочетание влияет на результат.
RGB — аддитивная модель, в которой цвет задаётся интенсивностями красного, зелёного и синего каналов. Аддитивная означает, что цвет получается сложением света: чем сильнее светят каналы, тем светлее результат. RGB удобно применять для экранов, потому что они создают изображение из светящихся точек.
CMYK — субтрактивная модель печати, использующая голубой, пурпурный, жёлтый и чёрный компоненты. Краски не добавляют свет, а поглощают его части, поэтому итог зависит от того, какие цвета отражаются от бумаги. Эта модель помогает готовить цвета для печати, где поведение красок отличается от свечения экрана.
Палитра — ограниченный набор цветов, доступных при создании или отображении изображения. Вместо подробного описания каждого цвета пиксель может хранить номер, указывающий на запись в палитре. Такой способ экономит память, если изображению достаточно небольшого числа оттенков.
Компьютер использует несколько числовых компонентов, потому что цвет нельзя удобно обозначить одним числом, которое одинаково подходит для всех устройств. Отдельные компоненты позволяют описать вклад разных частей света или краски, а затем вычислить итоговый цвет. Устройство получает числа и преобразует их в свет или в команды для печати.
В RGB красный, зелёный и синий свет складываются, поэтому модель называют аддитивной. При выключенных каналах экран не излучает свет и точка выглядит чёрной; при усилении каналов она становится светлее. Разные сочетания интенсивностей создают другие цвета: например, красный и зелёный свет вместе дают жёлтый.
Числа в RGB показывают силу каждого канала, а не название готового оттенка. При диапазоне от 0 до 255 тройка (255, 0, 0) означает максимальный красный вклад без зелёного и синего, а (100, 0, 0) — более слабый красный. Если изменить одно число, меняется оттенок или яркость; увеличение значения обычно усиливает соответствующий свет, а не затемняет его.
CMYK работает иначе, потому что бумага отражает свет, а краски часть этого света поглощают. Голубая, пурпурная и жёлтая краски в сочетаниях убирают из отражённого света разные компоненты; чёрную добавляют для более глубоких тёмных участков и чёткого текста. Поэтому CMYK применяют преимущественно в полиграфии, а RGB — на экранах, которые сами излучают свет.
Палитра ограничивает список цветов, из которого выбираются пиксели, а глубина цвета определяет, сколько бит занимает кодирование одного пикселя. При n битах можно закодировать до 2ⁿ разных вариантов; например, 8 бит дают 256 вариантов. Если цвет кодируется прямо значениями каналов, большая глубина позволяет передать больше оттенков, но требует больше данных; палитровое изображение может уменьшить объём, пока хватает выбранных цветов.
Таблица показывает, что RGB и CMYK описывают получение цвета разными физическими способами, а палитра ограничивает способ его хранения. Чтобы выбрать подходящий вариант, сначала определите, где будет использоваться изображение: на экране или в печати. Затем сравните число компонентов и способ, которым кодируется цвет одного пикселя.
| Свойство | RGB | CMYK | Палитра |
|---|---|---|---|
| Основные компоненты | Красный, зелёный, синий | Голубой, пурпурный, жёлтый, чёрный | Заранее выбранные цвета |
| Способ получения цвета | Смешение света | Поглощение света красками | Выбор цвета из набора |
| Тип смешивания | Аддитивный | Субтрактивный | Не задаёт смешивание |
| Основная область применения | Экраны и цифровые изображения | Цветная печать | Изображения с небольшим числом цветов |
| Представление одного цвета | Три числа каналов | Четыре числа компонентов | Индекс цвета в наборе |
| Ограничение количества цветов | Зависит от диапазона и точности каналов | Зависит от точности компонентов и печати | Задаётся размером палитры |
Определим цвета для троек RGB (255, 0, 0), (0, 255, 0) и (0, 0, 255). В привычном диапазоне от 0 до 255 число 255 означает максимальную интенсивность канала, а 0 — отсутствие его вклада. Поэтому нужно найти в каждой тройке канал с максимальным значением и сопоставить его с названием цвета.
Найдём число цветов RGB, если каждому из трёх каналов отведено по 4 бита. Один бит имеет два состояния, поэтому четырьмя битами можно записать 2⁴ = 16 значений. Каналы выбираются независимо: для каждого значения красного доступны все значения зелёного и синего, значит, число сочетаний нужно перемножить.
Ответ: 4096 различных цветов. Здесь умножение нужно потому, что любое значение красного можно сочетать с каждым значением зелёного и синего. Если бы требовалось узнать число оттенков только одного канала, перемножать трижды было бы не нужно.
Сравним объём изображения 800 × 600 пикселей при глубине 24 и 8 бит, не учитывая служебную информацию. Сначала найдём число пикселей, затем умножим его на количество бит для одного пикселя. Полученные биты переведём в байты делением на 8, ведь один байт равен восьми битам.
Ответ: при 24 битах изображение занимает 1 440 000 байт, а при 8 битах — 480 000 байт. В данном расчёте полноцветный вариант требует втрое больше памяти, потому что на пиксель отводится втрое больше бит. Реальный файл может занимать другой объём из-за сжатия и служебных данных.
Ошибка: считать, что увеличение значения RGB делает цвет темнее. Так можно подумать, если перепутать интенсивность света с количеством краски, но RGB складывает световые вклады. Проверь себя на крайних значениях: увеличение канала от 0 к максимуму усиливает его цвет, а три максимальных канала дают белый.
Ошибка: путать RGB и CMYK и считать, что это два названия одного способа. Причина в том, что обе модели описывают цвета, но первая относится к излучаемому экраном свету, а вторая — к краскам, поглощающим свет. Для проверки спроси себя, светится ли устройство само: для экрана подходит RGB, для печати — CMYK.
Ошибка: полагать, что палитра содержит вообще все возможные цвета. Обычно её принимают за полный список оттенков изображения, хотя палитра — лишь заранее выбранный ограниченный набор. Проверь себя, посчитав записи в палитре: если нужного оттенка там нет, изображение не сможет выбрать его без изменения набора.
Ошибка: забывать, что глубина цвета измеряется в битах на пиксель, а объём часто записывают в байтах. Путаница возникает из-за похожих единиц и приводит к результату, который отличается в восемь раз. При расчёте подпиши единицу после каждого действия и раздели число бит на 8, чтобы получить байты.
Для этой темы нужны знания о двоичном кодировании, бите и байте, а также понимание, что растровое изображение состоит из пикселей. Эти понятия помогают вычислять, сколько данных занимает изображение. Позже цветовые модели пригодятся при обработке графики, выборе формата файла и оценке размера изображения. На практике их применяют, когда настраивают цвет в редакторе или готовят экранные материалы и макеты к печати.
Почему на экране используется RGB, а в принтере — CMYK?
Экран сам излучает красный, зелёный и синий свет, поэтому его цвета удобно задавать в модели RGB. Бумага не светится: краски поглощают часть падающего света, и для печати используют модель CMYK.
Как по значениям RGB понять, какой цвет получится?
В RGB числа показывают интенсивность красного, зелёного и синего каналов. Если один канал имеет большое значение, его цвет заметно участвует в результате; сочетание всех трёх определяет итоговый оттенок.
Что произойдёт, если все три значения RGB равны нулю или максимальны?
Если все каналы равны нулю, экран не излучает свет и получается чёрный цвет. Если все каналы имеют максимальное значение, смешиваются красный, зелёный и синий свет — получается белый.
Чем палитровое изображение отличается от полноцветного?
В палитровом изображении пиксель указывает на цвет из ограниченного списка — палитры. В полноцветном изображении цвет каждого пикселя задаётся значениями каналов, поэтому можно использовать гораздо больше оттенков.
Как глубина цвета влияет на качество и размер изображения?
Чем больше бит приходится на пиксель, тем больше цветов можно закодировать. Обычно это позволяет передавать больше оттенков, но увеличивает объём данных изображения, если другие условия одинаковы.
§ 5. Цветовые модели и палитры в компьютере