Растровая и векторная графика: это как?
easy

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

Как-нибудь так…

Есть два вида картинок: в одной миллионы цветов и полный фотореализм; вторую можно увеличивать и уменьшать до бесконечности без потери качества. Вот как это всё работает.

👉 Как и большинство статей в журнале «Код», эта статья для начинающих. Юные Артемии, вам не сюда. Лучше порешайте наши задачки в паблике

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

Растр — это множество мелких точек, из которых может состоять изображение. В случае с компьютером растр — это пиксели, из которых состоит фотография. 

Например, когда вы фотографируете на смартфон или цифровой фотоаппарат, вы получаете растровое изображение, которое состоит из множества отдельных точек. Если смотреть на экране телефона или компьютера, они не видны, но если сильно увеличить, то эти точки станут заметны.

Растровая графика
Чем сильнее увеличим фотографию, тем больше видны пиксели

👉 У растровой графики есть два главных параметра: размер изображения и глубина цвета.

Размер изображения — это количество пикселей по горизонтали и вертикали. Чем больше размер, тем сильнее можно увеличивать картинку без потери качества. Например, возьмём одну и ту же фотографию, но у одной будет размер 100 на 200 пикселей, а у другой — 1000 на 2000 пикселей:

Размер изображения — это количество пикселей по горизонтали и вертикали
В одном и том же масштабе вторая картинка смотрится гораздо лучше, потому что в ней больше пикселей, которые передают больше деталей

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

Глубина цвета. Представьте, что ваша камера в телефоне может различать только 16 цветов. В этом случае фотографии получались бы такими:

Глубина цвета
В целом понятно, что тут изображено, но выглядит странно

Это и есть глубина цвета — сколько разных оттенков присутствует на изображении. В нашем примере 16 цветов — это 4 бита, потому что 2 в 4 степени = 16. Сравните, как выглядит та же фотография с глубиной цвета 16 и 8 бит:

Чем больше глубина цвета, тем плавнее цветовые переходы на фото
Чем больше глубина цвета, тем плавнее цветовые переходы на фото

Главное применение растровой графики — фотографии и изображения с большой глубиной цвета и множеством деталей. Фотографии — это растр. Рисунки от руки — чаще всего растр. Если на изображении природа, люди, водичка или что угодно со множеством деталей, скорее всего, такое изображение будет растровым. 

Компьютеры классно справляются с растровыми изображениями, потому что растр довольно прост в обработке. Компьютер ставит подряд нужное количество пикселей и красит их в нужные цвета. Операция простая, математика минимальная, просто нужно повторить её много раз. Компьютеры в этом сильны.

Векторная графика

В отличие от растровой графики, векторная состоит не из пикселей, а из математических формул. В такой графике каждое изображение нарисовано с помощью отдельных элементов:

  • точек,
  • эллипсов,
  • прямоугольников,
  • многоугольников,
  • кривых любой сложности.

Чтобы это нарисовать, у каждого элемента есть свои параметры, например:

  • координаты,
  • цвет,
  • размер,
  • толщина линии,
  • толщина контура,
  • цвет контура,
  • прозрачность,
  • радиус кривизны и так далее.

Если компьютеру нужно нарисовать звёздное небо, мы можем дать ему такие команды:

  1. Создай пустой рисунок.
  2. Залей его градиентом сверху вниз от тёмно-синего к синему.
  3. Поставь точку {белая, размер 0,5, непрозрачность 100%} по координатам 10,8.
  4. Поставь точку {белая, размер 0,4, непрозрачность 100%} по координатам 14,9.
  5. Поставь точку {белая, размер 1,1, непрозрачность 80%} по координатам 19,31.
  6. … добавляем ещё 113 звёзд.

В итоге получим такой рисунок:

Растровая и векторная графика
Избражение: wallpapersafari.com

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

👉 Сила векторной графики — в возможности бесконечно увеличивать и уменьшать размер изображения без потери качества. При изменении размера компьютер сразу пересчитывает все формулы и отрисовывает картинку заново. Поэтому при увеличении векторной графики не появляются пиксели и размытие, даже если нам нужно увеличить одну звезду в 100 раз:

Сила векторной графики — в возможности бесконечно увеличивать и уменьшать размер изображения без потери качества

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

Здесь много деталей, но всё равно видно, что это не фотография, а векторная иллюстрация
Каждый элемент на этой картинке задаётся своей формулой. Здесь много деталей, но всё равно видно, что это не фотография, а векторная иллюстрация
То же самое изображение в кривых
То же самое изображение в кривых

Векторная графика чаще всего применяется там, где не нужна фотореалистичность — иконки, пиктограммы, рекламные материалы. Главная задача такого изображения — чтобы его можно было увеличить или уменьшить как угодно без потери качества.

Векторная графика
Иконки — Сергей Чикин

Что дальше

Будем осваивать векторную графику в CSS. Заодно потренируемся наводить красоту на страницах и попрактикуемся в коде.

Текст и иллюстрации:

Михаил Полянин

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Мария Дронова

Соцсети:

Олег Вешкурцев

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
Давид Ян о системе, которая предскажет ваше увольнение
Давид Ян о системе, которая предскажет ваше увольнение

Большой разговор в подкасте «Запуск завтра».

Perl — особенный язык программирования
Perl — особенный язык программирования

Он может связать два любых проекта в одно целое.

easy
«Нормально делай и нормально будет»
«Нормально делай и нормально будет»

Даниил Попов о современной андроид-разработке, пользе твиттера и уходе из Авито.

easy
Что умеет Pure и за что его любят начинающие разработчики
Что умеет Pure и за что его любят начинающие разработчики

Непростой разбор простого фреймворка

hard
Нейронки-2024: обзор лучших для создания изображений
Нейронки-2024: обзор лучших для создания изображений

Классика, хехе

easy
Что такое куки
Что такое куки

8 вопросов, которые вы всегда хотели задать, но боялись куки.

easy
Сравнение: классы против функций
Сравнение: классы против функций
medium
Как компьютер научился обыгрывать человека в го и StarCraft
Как компьютер научился обыгрывать человека в го и StarCraft

И какая от этого польза человечеству

Можно ли обыграть казино?
Можно ли обыграть казино?

Краткий курс математического ожидания.

medium
easy