Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БЕКИН_Д_ЖЕНАТОВ.doc
Скачиваний:
33
Добавлен:
24.08.2019
Размер:
4.5 Mб
Скачать

10.4. Векторная графика

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

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

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

10.5. Форматы графических файлов

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

Windows Bit MaP (расширение файлов – .bmp) – формат операционной системы Windows для хранения растровых изображений; поддерживается всеми Windows-приложениями.

TIFF (Tagged Image File Format) (расширение файлов – .tif) – предназначен для хранения растровых изображений высокого качества в широком цветовом диапазоне; поддерживается большинством графических, издательских и дизайнерских программ; совместим с Apple Macintosh.

GIF (Graphic Interchange Format) (расширение файлов – .gif) – стандартизирован в 1987 г. как средство хранения изображений с фиксированным (256) количеством цветов. Из-за ограниченных цветовых возможностей применяется исключительно в электронных публикациях. Благодаря компактности файлов широко используется для размещения графических изображений на Web-страницах в Интернете

JPEG (Joint Photographic Experts Group) (расширение файлов – .jpg) – обеспечивает хранение растровых графических изображений в более компактной форме на основе использования эффективного алгоритма сжатия. Применяемые методы сжатия основаны на удалении «избыточной» информации. Позволяет регулировать соотношение между степенью сжатия файла и качеством изображения.

PSD (PhotoShop Document) (расширение файлов – .psd) – собственный формат графического редактора Adobe Photoshop, один из наиболее мощных по возможностям хранения растровой графической информации. Поддерживает 48-разрядное кодирование цвета, цветоделение и различные цветовые модели. Основной недостаток – отсутствие эффективного алгоритма сжатия, приводящее к большому объему файлов.

PDF (Portable Document Format) (расширение файлов – .pdf) – разработан фирмой Adobe для хранения изображений документов (например, страниц книг, журналов и др.); является аппаратно-независимым (вывод изображений допустим на любых устройствах - от экрана монитора до фотоэкспонирующего устройства). Мощный алгоритм сжатия со средствами управления итоговым разрешением изображения обеспечивает компактность файлов при высоком качестве иллюстраций.

WMF (Windows MetaFile) (расширение файлов – .wmf) – формат операционной системы Windows для хранения векторных изображений; поддерживается всеми Windows-приложениями. Однако отсутствие средств для работы со стандартизированными цветовыми палитрами, принятыми в полиграфии, и другие недостатки ограничивают его применение.

Пример 10.3. Известно, что видеопамять компьютера имеет объем 512 Кбайт. Разрешающая способность экрана 640 на 200. Сколько страниц экрана одновременно разместится в видеопамяти при палитре а) из 8 цветов; б) 16 цветов; в) 256 цветов? Сколько бит требуется, чтобы закодировать информацию о 130 оттенках?

Нетрудно подсчитать, что 8 (то есть 1 байт), поскольку при помощи 7 бит можно сохранить номер оттенка о 0 до 127, а 8 бит хранят от 0 до 255. Легко видеть, что такой способ кодирования неоптимален: 130 заметно меньше 255.

Как уплотнить информацию о рисунке при его записи в файл, если известно, что

а) в рисунке одновременно содержится только 16 цветовых оттенков из 138 возможных;

б) в рисунке присутствуют все 130 оттенков одновременно, но количество точек, закрашенных разными оттенками, сильно различаются.

Решение. а) очевидно, что для хранения информации о 16 оттенках достаточно 4 бита (половина байта). Однако так как эти 16 оттенков выбраны из 130, то они могут иметь номера, не умещающиеся в 4 битах. Поэтому воспользуемся методом палитр. Назначим 16 используемым в нашем рисунке оттенкам свои «локальные» номера от 1 до 15 и закодируем весь рисунок из расчета 2 точки на байт. А затем допишем к этой информации (в конец содержащего ее файла) таблицу соответствия, состоящую из 16 пар байтов с номерами оттенков: 1 байт – наш «локальный» номер в данном рисунке, второй – реальный номер данного оттенка. Когда вместо последнего используется закодированная информация о самом оттенке, например, сведения о яркости свечения «электронных пушек» Red, Green, Blue электронно-лучевой трубки, то такая таблица и будет представлять собой палитру цветов). Если рисунок достаточно велик, выигрыш в объеме полученного файла будет значительным;

б) попытаемся реализовать простейший алгоритм архивации информации о рисунке. Назначим трем оттенкам, которыми закрашено минимальное количество точек, коды 128 – 130, а остальным оттенкам – коды 1 – 127. Будем записывать в файл (который в этом случае представляет собой не последовательность байтов, а сплошной битовый поток) семибитные коды для оттенков с номерами от 1 до 127. Для оставшихся же трех оттенков в битовом потоке будем записывать число-признак – семибитный 0 - и сразу за ним двухбитный «локальный» номер, а в конце файла добавим таблицу соответствия «локальных» и реальных номеров. Так как оттенки с кодами 128 – 130 встречаются редко, то семибитных нулей будет немного.