Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

НАИБОЛЕЕ РАСПРОСТРАНЕННЫЕ ГРАФИЧЕСКИЕ ФОРМАТЫ



Существует много форматов представления графических файлов. ANSI - американский национальный институт стандартов - предложил несколько спецификаций. Однако реально фирмы их не выполняют. Сущест­вует 2 принципиально различных способа записи графической информации: растровый и векторный. Различные фирменные пакеты по-разному представляют в рамках этих способов данные, стремясь наиболее эффективно по памяти и времени обработать тот класс данных, для которого предназначен пакет.

Растровый способ используется обычно в программном обеспечении сканеров и в программах редакти­рования фотореалистических изображений. Растровый файл состоит из точек, число которых определяется раз­решением. Разрешение измеряется в количестве точек на дюйм (dpi) или на сантиметр (dpc). Эта метрика ис­пользуется как для дисплея, так и для других устройств вывода, например, принтеров. Очень важным фактором, влияющим на качество изображения, является глубина цвета, т.е. число разрядов, отводимых для хранения информации об оттенках (градациях) 3 основных цветов (RGB). Так, глубина 24 разряда дает 16777216 цветов (24=3*4=2**24). Для полутонового нецветного изображения хранятся оттенки черного.

Плата за высокую глубину - большой размер файлов растровой графики. Размер файла сильно зависит от выбранного формата хранения. При прочих равных условиях (размеры изображения и битовая глубина) ри­сунок формата TIFF может быть в 2 раза меньше формата EPS или в 2 раза больше PCX. В некоторых форматах применяются особые схемы сжатия, сильно уменьшающие размер файла. Файлы могут содержать дополни­тельную информацию, обеспечивающую предварительный просмотр изображения. Достоинство растровой гра­фики - реалистичность изображения, соответствие устройствам вывода (принтеры). Недостаток - большие за­траты дисковой памяти, хотя дисковая память экономится за счет сжатия. Но т.к. алгоритмы сжатия у разных пакетов разные, возникает проблема ''непонимания" изображений другими программами.

Векторный способ записи изображений применяется обычно в системах автоматизированного проекти­рования и пакетах для построения графических изображений (рисовалках). Изображение состоит из простейших элементов (прямая, ломаная, кривая Безье, эллипс, прямоугольник' и т.д.), называемых графическими примити­вами. В графической библиотеке BGI реализован векторный способ. Для каждого из примитивов определен ряд атрибутов (например, для многоугольников задаются координаты вершин, толщина и цвет контурной линии, тип и цвет заливки и т.д.). Записывают также место объектов на странице и их взаимное расположение. Вектор­ный формат - доказательство идеи древнегреческих математиков, что любую существующую в природе форму можно описать с помощью геометрических примитивов и компаса. Векторная графика использует математиче­ские формулы описания объекта и комбинацию команд манипулирования объектами. Местоположение точек ВЫЧИСЛЯЕТСЯ. Векторную графику часто называют объектно-ориентированной или чертежной. Некоторые векторные форматы очень просты, содержат несколько десятков команд. В других форматах число команд сотни и тысячи. Команды могут представляться в коде ASCII, в двоичном коде, и др.

Достоинство векторного представления - экономичность по памяти, т.к. не нужно запоминать каждую точку. Хранится АЛГОРИТМ получения изображения, а не само изображение. В растровых форматах хранит­ся цвет каждого пиксела, что ведет к трате памяти. В векторных форматах хранится цвет объекта в целом. При редактировании векторных изображений манипулируют объектами (примитивами или их совокупностью, выде­ленной по некоторому критерию). Это позволяет работать с частями рисунка, выводить его по частям, просмат­ривать послойно. Последнее реализовано, например, в системе автоматизации проектирования многослойных печатных плат PCAD, приложениях, написанных в среде AutoCAD для архитектурно-стоительного проектиро­вания и др. Самая сильная сторона векторной графики - максимальное использование разрешающей способно­сти устройства вывода без изменения рисунка. Векторные команды просто требуют нарисовать объект заданно­го размера. Количество точек, использованное при этом. определяется устройством. В растровом формате рисо­вание ведется по точкам и если точек мало, то на хорошем принтере получается плохой рисунок. По той же причине изменение размеров не воняет на качество вывода векторного изображения. Для растрового изображе­ния при увеличении появляется зернистость, т.к. точек не хватает. Недостаток векторной графики - сложность изображения больших многообъектных сцен. Возникают трудности получения сложных изображений (напри­мер, кривых), т.к. набор исходных примитивов может быть недостаточным. Тогда приходится создавать стили­зованные изображения. Не все устройства могут реализовать и все требуемые векторные команды.

Т.к. точка - тоже графический примитив, векторные рисунки мог\т содержать растровые вставки. Но возможности их редактирования в большинстве программных пакетов ограничены. Растровые рисунки воспри­нимаются как объект, поэтому исполняются только команды, относящиеся к рисунку в целом (умень­шить/увеличить яркость, изменить размер рисунка - каждый пиксел представляется несколькими точками). Яр­кий пример такого подхода - вставка рисунков в текст, подготовленный в редакторе Microsoft Word. Есть про­граммы (в основном на Macintosh), позволяющие работать с обоими типами рисунков. Они создают 2 разных слоя. Некоторые векторные форматы позволяют создавать растровый эскиз изображения, который за счет уве­личения размера файла хранится вместе с векторным описанием. За счет этого, например, в издательских паке­тах типа PageMaker можно выполнить эскизный просмотр рисунка или страницы, куда вставлен рисунок.

Существует множество программ трансляции, переводящих данные из векторного формата в растро­вый. Это достаточно просто. Обратная операция сложна. Сложно даже перевести рисунок из одного векторного формата в другой. Причина - использование в различных векторных форматах уникальных математических моделей описания изображений. Тем не менее, такие программы есть (например, модуль CorelTrace из пакета CorelDraw). Сейчас просматривается тенденция к слиянию векторного и растрового форматов. Но пока это еще не произошло, т.к. векторное описание растрового рисунка очень громоздко, сжатие отсутствует. Обратная опе­рация с учетом сжатия более эффективна. Но при этом "родной" векторный формат все же компактнее.

 

* * *

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

· линейные изображения (растровые образы линий);

· сплошные объекты (растровые области двумерных областей);

· шрифты;

· изображения (прямоугольные матрицы пикселов).

 

Любой современный компилятор имеет графическую библиотеку, поддерживающую указанные объекты. Такая библиотека должна обеспечивать работу с основными типами видеоадаптеров. Этого можно достичь не­сколькими путями. Во-первых, можно написать версии библиотеки для всех основных типов адаптеров. Кроме трудоемкости такой работы и громоздкости полученного компилятора использование конкретной библиотеки привяжет программу к определенному типу видеоадаптера, т.е. сузит ее независимость. Принцип совместимости видеоадаптеров здесь помогает мало, т.к. программа, написанная, например, для CGA, будет работать на VGA, но без полного использования всех его возможностей Эта программа так и останется CGA-шной. Другой путь -включить в библиотеку версии процедур для всех основных типов видеоадаптеров. Это увеличивает машино-независимость. Но нельзя исключить наличия у пользователя видеоадаптера, не поддерживаемого библиотекой. Самым главным недостатком такого подходя является очень большой размер исполняемого файла

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

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.