Перейти к содержанию
Educora
Средний8–10 классы25 мин12 / 59

Компьютерная графика: кодирование растровых и векторных изображений

Растровая и векторная графика, пиксель, разрешение, глубина цвета и палитра (N = 2ⁱ), High Color и True Color, объём изображения V = W · H · i, задачи на отношение, модели RGB и CMYK — с решёнными заданиями в стиле DİM.

Проверь себя
В этом уроке ты узнаешь
  • Сравнивать растровые и векторные изображения, узнавать их форматы и редакторы
  • Находить глубину цвета по палитре (N = 2ⁱ) и объём изображения по формуле V = W · H · i
  • Находить, во сколько раз меняется объём при изменении размеров и палитры, и по объёму определять палитру или размер
  • Объяснять цветовые модели RGB и CMYK

Если сильно увеличить фотографию на телефоне, она распадается на маленькие цветные квадратики. А логотип сайта, как его ни увеличивай, остаётся с гладкими краями. Дело в том, что фотография — растровое изображение, а логотип обычно векторное: первое состоит из точек, второе — из формул. В этом уроке разберём, как кодируются оба вида и как вычислять объём растрового изображения.

Этот урок продолжает урок «Кодирование текстовой информации»: там каждый символ заменялся кодом, а здесь — каждый пиксель. Тема часто встречается на вступительном экзамене: в четырёх вступительных экзаменах 2025–2026 годов было 4 задания на кодирование графики (изменение палитры, соответствие объёмов и палитр, High Color и True Color, изображение с изменёнными шириной, высотой и палитрой), а ещё в одном нужно было найти объём рисунка в документе.

Растровая и векторная графика

Определение
Растровое изображение

Прямоугольная сетка (растр) из маленьких квадратных точек — пикселей. У каждого пикселя свой цвет, и компьютер хранит код цвета каждого пикселя отдельно. Фотографии, отсканированные документы и снимки экрана — растровые изображения.

Определение
Векторное изображение

Изображение из простых геометрических объектов — отрезков, прямоугольников, эллипсов, многоугольников, кривых. Компьютер хранит не точки, а описание объектов: координаты, размеры, толщину линии, цвет. Логотипы, схемы, чертежи и шрифты — векторные изображения.

RРастровое изображение(пиксели)Векторное изображение(центр и радиус)
Один и тот же круг: в растровом варианте хранится каждый пиксель, в векторном — только центр, радиус и цвет.
Растровая графикаВекторная графика
Из чего состоитпикселигеометрические объекты (примитивы)
При увеличениипоявляется «лесенка», качество теряетсякачество не теряется
Объём файла зависит отчисла пикселей и глубины цветачисла и сложности объектов
Подходит дляфотографий, реалистичных изображенийлоготипов, схем, чертежей, шрифтов
ФорматыBMP, JPEG, PNG, GIF, TIFFSVG, AI, CDR, EPS
Графические редакторыPaint, Adobe Photoshop, GIMPCorelDRAW, Adobe Illustrator, Inkscape
HTML
<svg width="240" height="120">
  <circle cx="60" cy="60" r="50" fill="red"/>
  <rect x="140" y="20" width="80" height="80" fill="royalblue"/>
</svg>
Предпросмотр
Векторное изображение — это команды, записанные текстом: красный круг с центром (60; 60) и радиусом 50 и квадрат 80 × 80, левый верхний угол которого в точке (140; 20). Измени r="50" и запусти код снова: круг увеличится без потери качества.

Пиксель, разрешение, глубина цвета и палитра

Определение
Разрешение (разрешающая способность)

Сколько пикселей у изображения (или экрана) по ширине и по высоте: W × H. Например, у экрана 1920 × 1080 (Full HD) 1920 · 1080 = 2 073 600 пикселей. Для принтеров и сканеров разрешение указывают числом точек на дюйм (dpi).

Определение
Глубина цвета

Число бит i, которым кодируется цвет одного пикселя. Палитра — набор цветов (оттенков), которые может использовать изображение; число цветов в палитре N = 2ⁱ.

N = 2ⁱ
где:
  • Nчисло цветов (оттенков) в палитре
  • iглубина цвета — число бит в коде одного пикселя

Если палитра не степень двойки, i округляют вверх: для 100 цветов нужно 7 бит (2⁷ = 128). В заданиях DİM это звучит так: «каждый цвет кодируется минимально возможным числом бит».

РежимГлубина цвета iПалитра N = 2ⁱ
чёрно-белый1 бит2
16 цветов4 бита16
256 цветов8 бит256
High Color16 бит65 536
True Color24 бита (по 8 бит на R, G, B)16 777 216
Названия High Color и True Color встречаются и на экзамене: запомни их число бит (16 и 24). Современный 32-битный режим добавляет к True Color 8 бит прозрачности.
Палитра и глубина цвета

1) В палитре 512 цветов. Какова глубина цвета?
2) В изображении 100 цветов, и каждый цвет кодируется минимально возможным числом бит. Сколько бит занимает один пиксель?
3) Глубина цвета — 12 бит. Какое наибольшее число цветов может быть в палитре?
4) Сколько цветов в режиме High Color?

Показать решение
1) 512 = 2⁹ ⇒ i = 9 бит.
2) 2⁶ = 64 < 100 ≤ 128 = 2⁷ ⇒ 7 бит.
3) N = 2¹² = 4096 цветов.
4) i = 16 ⇒ N = 2¹⁶ = 65 536 цветов.

Объём растрового изображения: V = W · H · i

В растровом изображении цвет каждого пикселя записывается i битами. Пикселей W · H, поэтому объём изображения — это сумма кодов всех пикселей. Это «графический вариант» формулы I = K · i: вместо символов — пиксели.

V = W · H · i
где:
  • Vинформационный объём растрового изображения (бит)
  • Wчисло пикселей по ширине
  • Hчисло пикселей по высоте
  • iглубина цвета (бит), N = 2ⁱ

Сначала найди i по палитре, затем перемножь и переведи биты в нужные единицы: 2¹³ бит = 1 Кбайт, 2²³ бит = 1 Мбайт.

Объём изображения

1) Найдите объём в Кбайтах изображения 1024 × 768 с палитрой из 256 цветов.
2) Сколько Кбайт занимает изображение 640 × 480 с 16 цветами?
3) Сколько байт занимает один кадр на экране Full HD (1920 × 1080) в режиме True Color?

Показать решение
1) i = 8 бит (256 = 2⁸). V = 1024 · 768 · 8 бит = 2¹⁰ · 768 · 2³ бит; чтобы получить Кбайты, делим на 2¹³: V = 768 Кбайт.
2) i = 4 бита. V = 640 · 480 · 4 = 1 228 800 бит = 153 600 байт = 153 600 : 1024 = 150 Кбайт.
3) i = 24 бита = 3 байта. V = 1920 · 1080 · 3 = 6 220 800 байт ≈ 5,93 Мбайт.
Обратные задачи

1) Изображение 512 × 256 занимает 96 Кбайт. Какое наибольшее число цветов в его палитре?
2) Изображение с 16 цветами занимает 256 Кбайт, его ширина — 1024 пикселя. Какова его высота в пикселях?

Показать решение
1) Пикселей: 2⁹ · 2⁸ = 2¹⁷; V = 96 · 2¹³ бит.
i = 96 · 2¹³ : 2¹⁷ = 96 : 16 = 6 бит ⇒ N = 2⁶ = 64 цвета.
2) i = 4 бита; V = 256 · 2¹³ = 2²¹ бит.
H = V : (W · i) = 2²¹ : (2¹⁰ · 2²) = 2⁹ = 512 пикселей.
Соответствие: объём и палитра

Установите соответствие (x — глубина цвета).
Объём изображения:
1. 1024 × 512 × x бит = 640 Кбайт
2. 256 × 256 × x бит = 3 · 2¹⁷ бит
3. 512 × 128 × x бит = 112 Кбайт
Наибольшее число цветов в палитре:
a. 2¹⁰
b. 2⁶
c. 2¹⁴
d. 10
e. 64

Показать решение
1. 640 Кбайт = 640 · 2¹³ бит; x = 640 · 2¹³ : 2¹⁹ = 640 : 64 = 10 бит ⇒ N = 2¹⁰ ⇒ a.
2. x = 3 · 2¹⁷ : 2¹⁶ = 6 бит ⇒ N = 2⁶ = 64 ⇒ b, e.
3. x = 112 · 2¹³ : 2¹⁶ = 112 : 8 = 14 бит ⇒ N = 2¹⁴ ⇒ c.
d (10) — это глубина цвета, а не число цветов, то есть ловушка.
Ответ: 1 – a; 2 – b, e; 3 – c.
Текст и изображения в документе

В 24-страничном документе на каждой из первых 8 страниц только изображение 256 × 256, закодированное палитрой из 16 цветов, а на каждой из остальных страниц — текст в UNICODE из 40 строк по 64 символа. Каков информационный объём документа в Кбайтах?
A) 296 B) 256 C) 336 D) 1104 E) 80

Показать решение
Изображение: 256 · 256 · 4 бит = 2⁸ · 2⁸ · 2² = 2¹⁸ бит = 2¹⁸ : 2¹³ = 32 Кбайт; 8 изображений: 8 · 32 = 256 Кбайт.
Текст: 24 − 8 = 16 страниц; 16 · 40 · 64 · 2 байт = 81 920 байт = 80 Кбайт.
Всего: 256 + 80 = 336 Кбайт (C).
Ловушки: A — считать текст в ASCII (40 Кбайт), B — забыть текст, D — принять 16 цветов за 16 бит, E — забыть изображения.
Python
import math

def image_kb(w, h, colors):
    i = math.ceil(math.log2(colors))   # color depth, bits
    return w * h * i / 2**13           # bits -> KB

print(image_kb(1024, 768, 256))
print(image_kb(640, 480, 16))
print(image_kb(512, 256, 64))
▸ Ожидаемый результат
768.0
150.0
96.0
Функция находит глубину цвета по палитре (math.ceil — округление вверх) и возвращает объём в Кбайтах. Подставь свои числа и проверь ответы.

Задачи на отношение: во сколько раз меняется объём?

Во многих задачах дано не само изображение, а его изменение: палитру уменьшают, ширина и высота меняются. Тогда полный объём считать не нужно — достаточно найти отношение, ведь объём прямо пропорционален ширине, высоте и глубине цвета.

V₂ / V₁ = (W₂ / W₁) · (H₂ / H₁) · (i₂ / i₁)V₂ / V₁ = (W₂ / W₁) · (H₂ / H₁) · (i₂ / i₁)
где:
  • W₂ / W₁, H₂ / H₁W₂ / W₁, H₂ / H₁во сколько раз изменились ширина и высота
  • i₂ / i₁i₂ / i₁отношение глубин цвета — не палитр!

Когда палитра уменьшается в 2ᵏ раз, глубина цвета уменьшается на k бит, а объём — не в 2ᵏ раз, а в i₁ / (i₁ − k) раз.

Меняется палитра

1) В палитре изображения 65 536 цветов. Число цветов уменьшили в 256 раз. Во сколько раз уменьшится объём изображения? (Каждый цвет кодируется минимально возможным числом бит.)
A) 256 B) 2 C) 8 D) 16 E) 128
2) Чёрно-белое (2 цвета) изображение перевели в палитру из 256 цветов. Во сколько раз увеличится объём?

Показать решение
1) N₁ = 65 536 = 2¹⁶ ⇒ i₁ = 16 бит; N₂ = 2¹⁶ : 2⁸ = 2⁸ ⇒ i₂ = 8 бит.
Число пикселей не меняется: V₁ / V₂ = 16 / 8 = 2 (B). 256 (A) — отношение палитр, а не объёмов.
2) i₁ = 1 бит, i₂ = 8 бит ⇒ объём увеличится в 8 раз.
Меняются и размеры, и палитра

Растровое изображение с палитрой из 256 цветов занимает 96 Кбайт. Другое изображение в 2 раза шире, в 8 раз ниже и закодировано палитрой из 65 536 цветов. Найдите его объём в Кбайтах.

Показать решение
i₁ = 8 бит, i₂ = 16 бит.
V₂ / V₁ = 2 · (1/8) · (16/8) = 2 · 1/8 · 2 = 1/2.
V₂ = 96 : 2 = 48 Кбайт.
Проверка через пиксели: V₁ = A · 8 бит = 96 · 2¹³ бит ⇒ A = 96 · 2¹⁰ пикселей; в новом изображении A · 2 : 8 = 24 · 2¹⁰ пикселей, V₂ = 24 · 2¹⁰ · 16 бит = 48 · 2¹³ бит = 48 Кбайт.
Два изображения с одинаковым числом пикселей

Два изображения — с палитрой из 256 цветов и в системе True Color — имеют одинаковое число пикселей и вместе занимают 96 Мбайт. Найдите объём изображения с 256 цветами в Мбайтах.
A) 12 B) 24 C) 48 D) 72 E) 32

Показать решение
Пусть число пикселей равно a. i₁ = 8 бит, i₂ = 24 бита.
a · 8 + a · 24 = a · 32 бит = 96 · 2²³ бит ⇒ a = 3 · 2²³.
V₁ = 3 · 2²³ · 8 бит = 24 · 2²³ бит = 24 Мбайт (B); изображение True Color — 72 Мбайт.
Короче: объёмы пропорциональны битам, 8 : 24 = 1 : 3, значит, 96 Мбайт делятся на 1 + 3 = 4 части: 96 : 4 = 24.

Цветовые модели: RGB и CMYK

Экран создаёт цвета светом: каждый пиксель состоит из трёх крошечных источников света — красного (Red), зелёного (Green) и синего (Blue). Это модель RGB. При сложении цвета становятся ярче (аддитивная модель): все три на полную мощность дают белый, все выключенные — чёрный. В режиме True Color каждая составляющая записывается 8 битами (0–255), поэтому пиксель — это 3 · 8 = 24 бита.

Принтер же наносит краску на белую бумагу, а краска поглощает часть света. Поэтому в печати используют модель CMYK: голубой (Cyan), пурпурный (Magenta), жёлтый (Yellow) и чёрный (Key). При смешивании красок цвет темнеет (субтрактивная модель). Чёрную краску добавляют отдельно: смесь трёх цветных красок не даёт чистого чёрного, к тому же так экономится краска при печати текста.

Интерактив
Загрузка симуляции…
Смешивай свет: красный + зелёный = жёлтый, все три вместе = белый. В субтрактивном режиме посмотри, как темнеют краски.
Коды RGB

1) Какой цвет задаёт (0, 255, 0) в RGB?
2) Какой цвет задаёт (255, 255, 0)?
3) Какой цвет получится, если красная, зелёная и синяя составляющие равны 128?
4) Запишите код белого цвета в RGB. Как получается белый цвет в CMYK?

Показать решение
1) На полную мощность горит только зелёный ⇒ зелёный.
2) Красный + зелёный свет ⇒ жёлтый; в шестнадцатеричной записи #FFFF00.
3) Если три составляющие равны, получается оттенок между белым и чёрным; 128 — середина ⇒ серый.
4) RGB: (255, 255, 255). В CMYK для белого краска не наносится: (0, 0, 0, 0) — остаётся цвет бумаги.

В следующем уроке, «Кодирование звуковой и видеоинформации», узнаем, как звук и видео превращаются в цифровой код; видео — это, по сути, последовательность растровых изображений.

Главное

  • Растровое изображение состоит из пикселей, векторное — из описаний геометрических объектов; векторное изображение при увеличении не теряет качества.
  • Палитра N = 2ⁱ, где i — глубина цвета; i округляют вверх (100 цветов → 7 бит).
  • Объём растрового изображения V = W · H · i; чтобы получить Кбайты, дели биты на 2¹³.
  • High Color — 16 бит, True Color — 24 бита (по 8 бит на R, G, B).
  • В задачах на отношение бери отношение бит, а не палитр: 65 536 → 256 цветов = 16 → 8 бит, объём уменьшается в 2 раза.
  • Экран использует модель RGB (аддитивную), принтер — CMYK (субтрактивную).

Проверь себя

Вопросов: 12. Каждый правильный ответ приносит XP.

1 / 12
Какой из форматов векторный?