Курсовая работа: Цвет и графика на ЭВМ

Модель растра первого
типа.

Модель растра второго
типа.
Бесконечные растры (когда X
и Y неограниченны) бывают удобны для описания
алгоритмов, позволяя избежать особых ситуаций. Впрочем, самой сутью некоторых
алгоритмов является как раз работа с граничными случаями.
Растровое представление
является естественным в тех случаях, когда нам не известна дополнительная
информация об изображаемых объектах (например, цифровым фотоаппаратом можно
снимать изображения произвольного содержания). В случае же векторного описания
примитивами являются более сложные объекты (линии и области, ограниченные
линиями), что предполагает априорные знания о структуре изображения. В
последнее время проявляется ярко выраженная тенденция к преобладанию устройств
ввода-вывода двумерной графической информации, основанных на растровом принципе
как более универсальном. Возникающая при выводе задача отображения
геометрических объектов, заданных их математическим описанием (например,
координатами концевых точек и цветом для отрезка), на растре, называемая растеризацией,
рассмотрена в последующих разделах.
При построении
алгоритмов, работающих с изображениями, можно также пользоваться информацией
как непосредственно атрибутов пикселей, так и работать с примитивами более
высокого порядка. В данной книге в основном рассматриваются алгоритмы первого
типа, про которые говорят, что они работают в пространстве изображения (англ.
image space), тогда как вторые работают в объектном пространстве (англ. object
space) (эти термины чаще употребляются в трехмерной графике).
Устройства отображения
растровой графики рассматриваются в следующей лекции.
Масштабируемая
векторная графика (Scalable Vector Graphics)
SVG (Scalable Vector
Graphics, в переводе масштабируемая векторная графика) - это язык для описания
двухмерной графики в формате XML. Можно сказать, что SVG – это HTML для
графики. Он включает в себя несколько типов различных объектов:
·
векторную графику
(линии, окружности, кривые)
·
текст (с
форматированием, заданием стилей и эффектов)
·
растровые
изображения (внедряемые в SVG–документ).
Графические возможности
языка чрезвычайно велики и сравнимы с возможностями пакетов Corel Draw и Adobe
Illustrator:
·
произвольные
заливки, штриховки, градиенты, заливки заданным растром, а также произвольным
фрагментом векторного изображения,
·
разнообразные
стили линий - линии произвольной толщины, штриховые, с различными стилями
угловых и конечных точек,
·
возможность
использование кривых Безье (кубических и квадратичных),
·
поддержка
прозрачности всего изображения или его части, с заданной степенью,
·
возможность
применения фильтров, типичных для растровой графики – размытие, попиксельное
смешивание, наложение,
·
поддержка Unicode
– возможность отображения в одном SVG документе текстов на различных языках и
различными шрифтами,
·
расположение
текстовых строк вдоль произвольных кривых,
·
встроенные
развитые средства анимации, позволяющие без программирования в режиме реального
времени менять практически все атрибуты изображения или его фрагмента,
·
встроенные
средства для создания интерактивности, а также поддержка JavaScript и DOM,
·
поддержка
каскадных таблиц стилей (CSS),
·
поддержка
антиалиасинга.
Название "масштабируемая
векторная графика" отражает следующие превосходства языка:
·
SVG–документы
могут быть отображены на самых различных устройствах – от экранов мобильных
телефонов и карманных компьютеров до мониторов PC и ноутбуков.
·
SVG–документы
представляются в векторном формате, следовательно, их можно масштабировать без
потери качества по сравнению с растровыми изображениями
·
SVG–графика может
быть создана "на лету" при помощи любого языка программирования
(Javascript, Java или C#) и возможно управление видом этой графики в режиме
работы приложения.

Рис. Увеличенный фрагмент растрового (А)
и векторного SVG (Б) изображений.
У растрового изображения
заметна "зазубренная" структура.
Объектная модель SVG
документа основана на принятом консорциумом W3C в 2000 году стандарте DOM
(Document Object Model) Level-2. Это дает возможность использования стандартных
языков для начального построения и произвольного манипулирования любыми
элементами изображения. Составной частью стандарта SVG является модель событий,
позволяющая привязать произвольный сценарий к любому фрагменту SVG документа и
достаточно легко реализовывать интерактивные графические изображения.
SVG разрабатывается
консорциумом W3C при поддержке таких крупных компаний, как Microsoft, Adobe,
Corel, IBM, Hewlett-Packard, Sun Microsystems, Canon, Kodak и многих других
(всего более двадцати). От их совместных усилий зависят стандартизация многих
деталей языка, а также скорость его создания.
Стандарт SVG 1.0 был
принят в качестве спецификации консорциумом в сентябре 2001 г. Стандарт SVG 1.1 и его версии SVG mobile profiles (SVG Basic and SVG Tiny) были приняты
консорциумом в качестве рекомендации в январе 2003 г. Ведутся работы по созданию стандарта SVG 1., который сейчас имеет статус черновика. Эта
версия языка будет содержать ряд новых свойств: встроенные атрибуты фигурного
форматирования текста, поддержка аудио и видео, а также более полная поддержка
DOM.
На момент написания этого
курса рабочей версией является SVG 1.1. Поэтому именно его мы и будем
рассматривать.
Сравнение растровой и векторной
графики |
Критерий сравнения |
Растровая графика |
Векторная графика |
Способ представления изображения |
Растровое изображение строится из
множества пикселей. |
Векторное изображение описывается в
виде последовательности команд. |
Представление объектов реального
мира |
Растровые рисунки эффективно
используются для представления реальных образов. |
Векторная графика не позволяет
получать изображения фотографического качества. |
Качество редактирования изображения |
При масштабировании и вращении
растровых картинок возникают искажения. |
Векторные изображения могут быть
легко преобразованы без потери качества. |
Особенности печати изображения |
Растровые рисунки могут быть легко
напечатаны на принтерах. |
Векторные рисунки иногда не
печатаются или выглядят на бумаге не так, как хотелось бы. |
Классификация изображений
и преобразования
Классификация
Говоря об обработке
изображений с помощью ЭВМ целесообразно выделить 4 класса изображений. Эта
классификация связана не столько с природой зрительного восприятия изображений,
сколько с подходом к их представлению и обработке.
Класс 1 - тоновые и
цветные изображения. В этот класс входят изображения, имеющие вид обычных
телевизионных изображений. Они обеспечивают довольно точное воспроизведение
реальности и представляются матрицами с целочисленными элементами. Для
обозначения этих элементов используют термины "элементы изображения",
"пиксел", "пэл". В большинстве прикладных задач эти матрицы
имеют очень большие размеры объектов - 512х512 элементов, являющиеся наиболее
общепринятыми. В связи с этим представление изображений не всегда хранятся в
памяти в виде обычных матриц и часто используются более изощренные
разновидности структур данных. Цветные изображения могут представляется либо
при помощи 3-х матриц (для красного, синего и зеленого цветов в отдельности),
либо с помощью другой матрицы таким образом, что отдельные биты любого элемента
представляют различные цвета, так как человеческий глаз порой не в состоянии
различать уровни освещенности, различающиеся друг от друга менее чем на 1%, то
для представления цветного изображения достаточно затрачивать по 1-му байту на
цвет одного пикселя. Приемлемых результатов удается добиться, используя по три
бита для передачи любого из двух цветов и два бита для передачи третьего.
Страницы: 1, 2, 3, 4, 5, 6, 7 |