Растровые и векторные изображения
Растровые изображения
Растровые изображения очень похожи на мозаику, в которой рисунок формируется из мелких одноцветных элементов, стекол. Если отойти от мозаичного панно достаточно далеко, отдельные стекла становятся неразличимо малы, и изображение кажется однородным (continuous tone). По этому принципу кодируется растровое изображение в компьютерной графике. DCC ими разбивается на мелкие ячейки, каждая из которых получает усредненный по занимаемой площади цвет. Для простоты и скорости обработки разбивка производится как в таблице: по горизонтальным строкам и вертикальным столбцам (именно поэтому растровые изображения всегда прямоугольные). При работе с изображением компьютер "запоминает" всю эту таблицу и цвет каждой ее ячейки. Таким образом, в растровых изображениях не существует объектов как таковых.
Такой простой способ кодирования обеспечивает и легкость его автоматизации с помощью сканеров. Основным узлом планшетного сканера является линейка из светочувствительных элементов. Она помещается на оригинал (рисунок, фотография, слайд и т. п.), а измеряемый каждым ее элементом цвет заносится в соответствующий столбец таблицы. При перемещении линейки вдоль изображения делаются замеры цвета через равные расстояния и записываются в строки таблицы. В результате в таблице оказывается точный снимок оригинала в цифровой форме. Каждая ячейка таблицы называется точкой, а вся таблица — растровым изображением.
Монитор тоже является растровым устройством. Его экран покрыт прямоугольной сеткой из точек люминофора. При демонстрации изображения кодированная информация визуализируется с помощью операции, обратной сканированию. Каждой точке изображения ставится в соответствие точка люминофора, называемая пикселом. Поэтому точку цифрового изображения часто отождествляют с пикселом и говорят, что растровое изображение состоит из пикселов, хотя это и не совсем верно.
Подчеркнем, что пиксел цифрового изображения это всего лишь данные о цвете его точки: он не имеет физических размеров.
Изображения в цифровой форме находятся в памяти компьютера. Чтобы увидеть изображение, необходимо воспользоваться каким-либо устройством вывода, например, монитором или принтером. Эти устройства сами по себе являются растровыми: на экране монитора и на отпечатке принтера изображения тоже состоят из цветных точек. Элементы растровой сетки люминофора, формирующие изображение на мониторе, тоже называются пикселами (терминологическое совпадение). На отпечатке растровую сетку формируют пятна краски или тонера, называемые точками.
Монитор — не единственное устройство вывода. Изображение можно напечатать на принтере, типографской машине, вывести на фотопленку или фотобумагу. Большинство устройств вывода, как и мониторы, тоже являются растровыми устройствами, и точкам изображения ставятся в соответствие точки этих устройств.
Подчеркнем, что цифровое изображение, находящееся в памяти компьютера не имеет своего физического воплощения, это всего лишь набор цифр. Увидеть его можно только посредством какого-либо устройства вывода. По этой причине внешний вид изображения (размер, качество, цветопередача и т. п.) сильно зависят от характеристик монитора или принтера.
Векторные изображения
Векторная графика основана на исключительно простых и естественных принципах, которые можно изложить буквально в нескольких словах.
Векторные изображения состоят из контуров произвольной формы, которые могут иметь заливку и/или обводку
Контуры, из которых строится изображение, в подавляющем большинстве компьютерных программ представляются т. н. кривыми (сплайнами) Безье. Они носят имя французского инженера Пьера Безье, впервые применившего их в системе проектирования в 70-х годах.
Кривые Безье представляют собой параметрические полиномы третьего порядка: Р = P0(1-t)3 + p1t(l-t) 2 + p2t2(l-t) + p3t3, где 0 < t < 1.
Векторные программы позволяют визуально управлять параметрами этих кривых. Они представляют Р0 и Р3 как координаты концов сплайна, а р1 и р2 — как координаты управляющих точек, лежащих вне кривой.
В векторных программах каждый контур состоит из одного или нескольких таких сплайнов, называемых сегментами. Общая точка соседних сегментов называется узлом. Соответственно, с каждым узлом связаны две управляющие точки, задающие кривизну соседних сегментов.
Сегменты могут быть не только криволинейными, но и прямолинейными. В этом простейшем случае для управления сегментом не нужны управляющие линии.
Если первый узел контура является одновременно и последним, то контур называется замкнутым.
С помощью кривых Безье можно описать любую кривую или плоскую фигуру. Такие широкие возможности часто оказываются избыточными. Множество окружающих нас предметов имеют примитивную форму, не требующую столь сложных методов описания: прямоугольники, многоугольники, спирали, эллипсы, дуги и т. п. Нарисовать ровный круг с помощью кривых Безье — не столь простая задача, как может показаться на первый взгляд. Вам придется точно устанавливать положение как минимум четырех управляющих точек. По этой причине перечисленные графические примитивы в векторных программах реализованы особым образом.
Каждый графический примитив имеет характерный набор геометрических свойств. Например, прямоугольник характеризуется длинами двух его сторон. Для точного описания этой фигуры не требуется больше никаких данных, поскольку все они заключены в самом понятии "прямоугольник". И для рисования прямоугольника в векторной программе вам не придется указывать точное положение всех его узлов (как пришлось бы сделать, используй вы кривые Безье), достаточно задать только длины его сторон.
Введение графических примитивов очень ускоряет и упрощает создание и редактирование контуров. При этом вы имеете дело всего лишь с несколькими характерными свойствами фигуры, а программа сама заботится о том, чтобы прямоугольники оставались прямоугольными, а окружности — круглыми.