Векторные изображения

Эта статья входит в число готовых статей
Эта статья прошла проверку экспертом
Материал из «Знание.Вики»
Пример, показывающий разницу между растровой и векторной графикой при увеличении. Растровые изображения плохо масштабируются, при увеличении распадаются на пиксели, тогда как векторные изображения могут быть неограниченно увеличены без потери качества (примеры изображения были преобразованы в векторный формат SVG для показа на этом рисунке).

Ве́кторная гра́фика — изображения, сформированные множеством точек, объединенных математическими соотношениями. Каждый объект — визуализация математической функции. Векторное изображение имеет преимущество перед растровым по качеству в том, что при любом увеличении оно сохраняет идеальную четкость[1].

Отличие векторной графики от растровой

Большинство изображений, которые есть в Интернете, являются растровыми. Они представляют собой множество точек и квадратов — пикселей. Пиксели очень хорошо видно, если максимально приблизить изображение. Чем больше точки, тем больше различных деталей на изображении. Основными параметрами растровой графики являются разрешение и глубина цветов. Именно такие данные можно увидеть в описании каждой картинки на компьютере при нажатии правой кнопки мыши на неё. Если разрешение изображения 1080x1080, то это означает, что ширина и длина картинки имеют 1080 пикселей. Глубина цветов зависит от максимального количества цветов, которые может содержать изображение. Например, глубина цвета 24 бит предполагает минимум 16,8 миллионов оттенков цвета. Основная задача компьютера, при отображении растровой графики — показать нужное количество пиктограмм с нужной цветовой гаммой. При увеличении изображения растрового цвета заметна разница в цветах пикселя. Точки выбирают для того, чтобы представить изображения, потому что именно тогда было проще и дешевле печатать, и они, смотря на расстояние, сливались в единое целое. Векторная графика не содержит пикселей. Здесь картинка не является сеткой, а является простым геометрическим рисунком кругов, квадратов, многоугольников, линий, имеющих координаты, расстояния, цвета, прочности и так далее. Принцип работы графики векторных функций аналогичен тому, что в школе рисуют графики функции: ставят точки в координатной системе, а затем их соединяют, получая линию кривой. Векторные объекты представляют собой тот же график, только они были построены не человеком, а компьютером. Человек редактирует фигуру с помощью наглядного интерфейса. Векторная графика не запоминает число и цвет точки, а запоминает математическую функцию, которая определяет, как идет линия на рисунок. Это дает возможность увеличить изображение и сохранить его идеально четким[1].

Способы хранения изображений

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

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

1. Координаты окружности центра.

2. Значение радиуса.

3. Цвет и текстура заливки, если окружности построены для того, чтобы отображать круг.

4. Цвет и толщина линии контура.

5. Прозрачная заливка и контур.

6. Порядок планирования по сравнению с другими примитивами впереди и сзади. При отображениях примитивов и объектов на устройство изображения последовательно, а ранее отображаемые объекты закрываются или накладываются ранее отображаемыми объектами.

Координаты центра и радиуса — обязательные параметры, другие данные описания окружностей часто называются атрибутом и можно опустить. В данном случае при выводе графических атрибутов их заменяют атрибуты текущего типа или текущие атрибуты[2].

Векторные операции

Векторные графические редакторы, как правило, позволяют перемещать, отражать, растягивать, перекачивать, то есть выполнять все аффинные преобразования над объектом, меняя порядок движения и сочетание примитивов в составных объектах. Также применяются более интенсивные операции преобразования, например такие как булевы операции, применяемые к замкнутой фигуре, как множество точек, которые принадлежат данной фигуре: соединение, дополнение, пересечение, как показано рисунком и так далее. Векторные графики предпочтительны для простого или составного рисунка, который должен быть аппаратным или не нуждающимся в фотореализации. Например, в таких форматах, как PostScript или PDF, используется векторная модель[3].

Принципиальные недостатки векторной графики

Не каждое изображение можно компактно описывать в векторной форме: для высокой контрастности с оригинальным изображением может понадобиться описывать очень большое количество шаблонов, что требует большого объема памяти, которое занимает изображение, и необходимое время для перевода его в формат растрового формата для вывода изображения в растровые дисплеи. Автоматически достаточно просто перевести векторную графику в растровые изображения. Но обратное изменение обычно очень трудно проходит — это изменение называется трассированием растровых изображений, и часто требует значительной вычислительной мощности и времени процессора, и при этом не всегда дает высокий уровень качества полученных векторных изображений. Специфика векторного формата для векторных рендереров гораздо сложнее, чем растровые рендереры. Для того, чтобы не иметь сложных спецификаций, существуют «упрощённые» форматы вектора: к примеру, в шрифте TrueType вместо линий (x) — нарисованы фигурки, или та же типография требует перевода текста в кривую. Перевод таких форматов приводит к частичной или полной утрате редактирования. Достоинство векторных изображений — масштабирование, исчезает при отображении векторных изображений в растре небольшого разрешения, например, иконки размером 32x32 или 16x16. Для того, чтобы не было лишних проблем с качеством, картинка под такие разрешения должна быть вручную редактирована. Для многих растеризаторов большинства существующих шрифтов, используются достаточно сложные хинтинговые алгоритмы, которые позволяют при меньшей степени уменьшить пропущенные и наоборот излишне толстые линии изображений символа[2].

Примечания

  1. 1,0 1,1 1,2 Кедрова Г. Е. Информатика для гуманитариев. — Москва: Юрайт, 2024. — 662 с.
  2. 2,0 2,1 Абдрахманов Б. Т. О информатике для гуманитариев.
  3. Масштабируемая векторная графика.