Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція комп. графіка.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
77.31 Кб
Скачать

Палитры и цветовая информация

Подобно растровым, векторные файлы могут содержать палитры Поскольку элементами данных, определенными в файле векторного формата, являются наименьшие объекты, то их цвет также должен быть определен. Прежде чем воспроизводить изображение, программа визуализации должна найти определение этого цвета в палитре файла. Можно откорректировать предыдущий пример, включив в него определение цветов (некую примитивную форму палитры, где цвет ассоциируется с его именем в формате ASCII):

RED, 255, 0, 0,

BLACK, 0, 0, 0,

BLUE, 0, 0, 255,

;С, 40, 100, 100, BL; 200, 50, 136, 227; R, 80, 65, 25, 78, R;

Некоторые векторные форматы позволяют определять замкнутые области, используя для этого контуры реальных элементов векторных данных, которые могут иметь разную толщину. Для изображения контуров применяются разные стили пера, т.е. комбинации точек и штрихов, используемые в техническом черчении и САПР. Нецветовые элементы информации, необходимые для визуализации изображения, называются элементарными атрибутами.

Атрибуты заполнения и цветовые атрибуты

Замкнутые элементы векторных данных могут быть спроектированы с учетом заполнения их цветом. Цвет заполнения обычно не зависит от цвета контура элемента; таким образом, каждый элемент может быть связан с двумя или более цветами, один из которых будет задан для контура элемента, а остальные — для заполнения. Цвета заполнения могут быть, в частности, прозрачными. Некоторые форматы позволяют определять так называемые цветовые атрибуты. Замкнутые элементы могут заполняться чистыми цветами, но могут содержать и штриховку или полутона, задаваемые так называемыми атрибутами заполнения. В некоторых случаях разобраться, где атрибуты заполнения, а где цветовые атрибуты, непросто, так как они были перепуганы либо еще при разработке формата (концептуально), либо непосредственно в файле (физически).

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

Градиентные заполнения

Замкнутый векторный элемент может быть заполнен несколькими цветами. Простейший способ осуществить такую операцию – использовать градиентное заполнение, которое представляет собой плавный переход цветов из одного в другой. Градиентные заполнения обычно хранятся в виде информации о начальном и конечном цветах, направлении и типе заполнения. Программа визуализации воспроизводит заполняемый объект с максимально возможным разрешением. К форматам, поддерживающим заполнение, относится CGM, который позволяет выполнить горизонтальное, вертикальное или кольцевое заполнение.

Концовка

Концовка может содержать информацию, записанную в файл после всех данных об объектах (например, о количестве объектов изображения). Однако в большинстве векторных форматов концовка используется просто для маркировки конца данных об объектах.

Размер векторного файла

Если не принимать в расчет палитру и информацию об атрибутах, можно сказать, что размер векторного файла прямо пропорционален количеству содержащихся в нем объектов. Это специфическая особенность векторных файлов, поскольку размер растрового файла не зависит от сложности описанного в нем изображения (на него может повлиять только способ сжатия данных).

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

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

Кроме того, на размер файла влияет способ сохранения в нем информации. Разные форматы могут поддерживать идентичную информацию множеством различных способов. Например, в формате CGM штриховой шаблон представляется в виде одного объекта, а в форматах PIC и Autodesk DXF каждая линия этого шаблона хранится как отдельный элемент.

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

Векторные форматы, в отличие от растровых, не поддерживают сжатие данных. Однако некоторые форматы допускают альтернативный метод кодирования и таким образом позволяют уменьшить объем файлов, не сокращая количество содержащейся в них информации. Например, уже упоминавшийся CGM обычно хранит векторную информацию в удобном для чтения символьном формате ASCII, однако позволяет записать ту же информацию в двоичном формате, уменьшив объем файла за счет читабельности и межплатформной переносимости. Формат DXF также имеет двоичный аналог, называемый DXB (Data eXchange Binaiy, обмен двоичными данными), который не только меньше по размеру, но и быстрее загружается порождающей его программой (AutoCAD). Однако этот формат не поддерживается другими программами.

Масштабирование векторных данных

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

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

Текст в векторных файлах

Сохранить символьные строки в векторных форматах можно одним из двух способов. Простейший подход позволяет записывать текст в виде литеральных ASCII-строк, сопровождаемых информацией о шрифте, позиции, цвете и атрибутах. Хотя текст в этом случае хранится в компактной форме, применение такой схемы подразумевает, что программа визуализации распознает используемые шрифты, а это всегда проблематично. Поскольку названия шрифтов большей частью определяются распространителями, точно задать изображаемый шрифт довольно сложно. В формате CGM для решения этой проблемы применяется международный регистр имен шрифтов и связанных с ними описательных данных. Любая программа визуализации, поддерживающая CGM, должна иметь доступ к этим данным либо применять метрики шрифта, приведенные в заголовке данного CGM-файла. Поскольку текст хранится в формате, пригодном для чтения, то он может редактироваться.

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

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

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

Применение векторных, штриховых или контурных шрифтов обычно катастрофически увеличивает размер файла, но оправдывается высоким качеством визуализации (особенно это касается контурных шрифтов, основанных на сплайнах). Штриховые шрифты в настоящее время применяются редко.

Преимущества и недостатки векторных файлов

К преимуществам векторных файлов можно отнести следующее:

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

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

• Многие векторные файлы, содержащие данные только в формате ASCII, могут быть модифицированы с помощью простых средств редактирования текстов. Отдельные элементы могут быть добавлены, удалены или изменены без ущерба для других объектов изображения.

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

Ниже перечислены недостатки векторных файлов:

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

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

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

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