"Информатика (базовый и углублённый уровни) (в 2 частях)", Поляков К.Ю., Еремин Е.А.
Растровая графика хранит изображение как прямоугольную сетку пикселей, каждому из которых назначен код цвета. Такой способ подходит для фотографий и других изображений с множеством оттенков. Чёткость и объём данных зависят от размеров сетки и глубины цвета: чем больше пикселей и бит на каждый из них, тем больше деталей можно сохранить, но тем больше памяти понадобится. При печати физический размер зависит ещё и от плотности пикселей.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Растровое изображение — изображение, представленное прямоугольной сеткой пикселей. Оно состоит из отдельных элементов потому, что компьютер хранит не непрерывную картинку, а набор значений, расположенных по строкам и столбцам. Это представление удобно для фотографий, где соседние участки могут иметь разные оттенки.
Пиксель — минимальный элемент растрового изображения, которому задаётся цвет. Название происходит от слов «элемент изображения»; на экране пиксели образуют всю видимую картинку. Понимание этого элемента помогает объяснить, почему при сильном увеличении можно увидеть отдельные цветные квадраты.
Разрешение изображения в пикселях — количество пикселей по горизонтали и вертикали, например 1920 × 1080. Эти числа описывают размер сетки, а не её физическую плотность: пикселей на дюйм указывают отдельно. Такое различие нужно, чтобы не путать количество точек файла с размером фотографии на бумаге или экране.
Глубина цвета — число бит, отведённых для кодирования цвета одного пикселя. Если используется n бит, можно записать до 2ⁿ разных кодов, а значит, и до 2ⁿ вариантов цвета. Глубина нужна, чтобы оценивать цветовые возможности изображения и рассчитывать объём данных.
Чтобы представить картинку в растровом виде, её делят на маленькие участки, расположенные в строках и столбцах. Такой шаг превращает непрерывные границы и переходы оттенков в конечный набор точек, который компьютер может хранить и обрабатывать. Затем каждому пикселю ставят в соответствие код цвета, а расположение кодов сохраняет структуру изображения.
Число пикселей влияет на то, сколько деталей можно отобразить: в более плотной сетке отдельные элементы соответствуют меньшим участкам исходной сцены. Поэтому при достаточном качестве исходника изображение большего размера в пикселях обычно сохраняет больше мелких подробностей. Но на каждый пиксель приходится информация о цвете, так что увеличение ширины и высоты увеличивает и общий объём данных.
Объём несжатого растра можно получить, посчитав все пиксели и умножив их количество на глубину цвета. Если ширина равна W, высота H, а глубина — n бит, то объём равен W × H × n бит. Чтобы получить байты, результат делят на 8, поскольку в одном байте 8 бит; при переводе в килобайты часто делят на 1024.
Размер сетки в пикселях сам по себе не задаёт размер отпечатка. При печати число пикселей каждой стороны делят на плотность, измеряемую в пикселях на дюйм: высокая плотность размещает ту же сетку на меньшей площади. Поэтому изображение 2400 × 1600 при 300 пикселях на дюйм получится меньше, чем при 150 пикселях на дюйм.
При увеличении растра каждый исходный пиксель становится крупнее, а данных о новых деталях не возникает. Программа может растянуть точки или сгладить переходы, однако восстановить сведения, которых нет в исходной сетке, она не может. Из-за этого контуры выглядят ступенчатыми или размытыми, а отдельные пиксели становятся заметны.
| Параметр | Что показывает | Как влияет на изображение или объём данных |
|---|---|---|
| Ширина и высота в пикселях | Количество точек по горизонтали и вертикали | Большая сетка обычно позволяет сохранить больше деталей и требует больше данных. |
| Глубина цвета | Количество бит для кодирования цвета одного пикселя | При большей глубине можно передать больше вариантов цвета, но объём данных растёт. |
| Количество возможных цветов | Максимум кодов цвета, задаваемый глубиной | Для n бит доступно до 2ⁿ вариантов; это влияет на разнообразие оттенков. |
| Объём несжатых данных | Число бит, нужное для хранения всех пикселей без сжатия | Рассчитывается как ширина × высота × глубина цвета. |
| Плотность пикселей при выводе | Количество пикселей на единицу длины, например на дюйм | Определяет физический размер отпечатка и то, насколько мелкими выглядят точки. |
Сначала по таблице удобно определить, какой параметр задан в задаче: размер сетки, глубина цвета или плотность вывода. Затем выберите соответствующую зависимость: для объёма перемножают число пикселей и глубину, а для размера печати делят пиксели на плотность. Так проще не подменить один параметр другим.
Задача 1. Несжатое изображение имеет размер 800 × 600 пикселей и глубину цвета 24 бита. Найдём объём в байтах и килобайтах. Сначала нужно узнать число пикселей, затем объём в битах; только после этого переводить единицы.
Ответ: 1 440 000 байт, или 1406,25 КиБ (примерно 1,37 МиБ). Результат относится к несжатым данным и не учитывает особенности формата файла.
Задача 2. Несжатое изображение занимает 1 440 000 байт, глубина цвета — 24 бита, ширина — 800 пикселей. Требуется найти высоту. Чтобы не делить байты напрямую на биты, сначала переведём весь объём в биты, а затем найдём количество пикселей.
Ответ: высота изображения — 600 пикселей. Проверка обратным расчётом даёт 800 × 600 × 24 ÷ 8 = 1 440 000 байт.
Задача 3. Изображение размером 2400 × 1600 пикселей печатают с плотностью 300 пикселей на дюйм; сравним результат с печатью при 150 пикселях на дюйм. Физическую длину каждой стороны получим делением её пиксельной длины на плотность. Так можно увидеть, как меняется размер отпечатка при неизменной сетке.
Ответ: при 300 пикселях на дюйм отпечаток будет 8 × 5,33 дюйма, а при 150 — 16 × 10,67 дюйма. Во втором случае изображение крупнее, но пиксели размещены менее плотно.
Первая ошибка — считать размер в пикселях физическими размерами изображения. Её допускают, потому что в обоих случаях говорят о ширине и высоте, хотя пиксели описывают сетку, а дюймы или сантиметры — отпечаток. Проверьте, задана ли плотность: без неё нельзя получить физический размер при печати.
При расчёте объёма иногда забывают перевести биты в байты делением на 8. Это происходит, когда вычисленное число сразу записывают как размер файла в байтах, хотя формула дала биты. Самопроверка проста: укажите единицу после каждого действия и убедитесь, что деление на 8 выполнено.
Глубину цвета принимают за количество цветов, например считают, что 8 бит означают 8 цветов. На самом деле каждый бит может участвовать в выборе кода, поэтому вариантов до 2ⁿ; путаница возникает из-за смешения числа бит и числа кодируемых комбинаций. Для проверки подставьте глубину в степень двойки: при 8 битах получится 256 вариантов.
Расчётный объём несжатых данных принимают за точный размер файла. Формула описывает объём данных пикселей без сжатия, а формат может кодировать их компактнее или добавлять служебную информацию. Проверьте, сказано ли в условии «несжатое изображение»: если нет, реальный размер файла только по ширине, высоте и глубине обычно не определить.
Для расчётов нужны знания о двоичном кодировании: именно битами задают цвет пикселя. Также важно уметь переводить биты в байты и понимать единицы объёма данных. Эти навыки помогают не перепутать результат формулы с размером в нужных единицах.
Пиксели, разрешение и глубина цвета пригодятся при редактировании изображений, выборе параметров сканирования и подготовке файлов к печати. Расчёт объёма растровых данных связан с дальнейшим изучением кодирования графики, сжатия и форматов файлов. Он помогает оценивать, сколько памяти потребуется изображению и почему итоговый файл может иметь другой размер.
Чем размер изображения в пикселях отличается от его разрешения при печати?
Размер в пикселях показывает количество точек по горизонтали и вертикали, например 2400 × 1600. При печати плотность пикселей определяет, сколько точек приходится на дюйм, а значит, и физический размер отпечатка. Одна и та же сетка при меньшей плотности печатается крупнее.
Как по глубине цвета узнать максимальное количество цветов?
Если на цвет одного пикселя отведено n бит, возможны 2ⁿ кодов и, соответственно, до 2ⁿ вариантов цвета. Например, при глубине 24 бита получится 2²⁴ вариантов.
Как рассчитать объём несжатого растрового изображения?
Умножьте ширину на высоту в пикселях и на глубину цвета в битах: так получится объём в битах. Чтобы перевести его в байты, разделите результат на 8; для килобайтов дополнительно разделите на 1024, если используются двоичные единицы.
Почему размер файла может быть меньше расчётного объёма несжатых данных?
Расчётная формула предполагает, что каждый пиксель хранится без сжатия и служебных особенностей формата. Сжатие может компактно записать повторяющиеся или похожие данные, поэтому файл иногда меньше. На итоговый размер также влияют формат и дополнительные сведения, сохранённые вместе с изображением.
Почему при увеличении растровое изображение теряет чёткость?
При увеличении исходные пиксели занимают больше места, а новых деталей в изображении не появляется. Программа может растянуть точки или рассчитать промежуточные цвета, но это не возвращает утраченные подробности. Поэтому границы становятся ступенчатыми или размытыми.
§ 56. Основы растровой графики