Формат GEM

Этот векторный формат является стандартным для большинства объектов файлов, предусматривает работу с метафайлами, поскольку изображение хранится в виде описания, то устройство ввода/вывода используется в полную силу. Состоит из заголовка файла и части, хранящей собственно изображение. Размер заголовка постоянный – это 15 по 2 байта. 2 по 9 отведены под резерв. Это стандартный приём, учитывающий разработку новых версий формата. Кроме того, когда длина заголовка одинакова, то мы получаем своеобразную защиту от сбоев.

Смещение Длина Описание
    0FFF
    0018 длина заголовка в байтах
    Номер версии формата, например 0301 – это версия 3.1
    Система координат RC/NDC
    Xmin
A   Xmax
C   Ymin
E   Ymax
    Размер страницы по x
    Размер страницы по y
    Xmin
    Xmax
    Ymin
1A   Ymax
1C   Флаг битовой карты кодовой операции
1E   Резерв

Смещения от 8 до E. Максимально возможная площадь объекта. Если не заполнено, то формат всё равно остаётся работоспособным.

Raster Coordinates (RC) – 2.

0 32767


Normal Device Coordinates (NDC) – 0

32767

0 32767


Любые другие значения (если не 0 или не 2) воспринимаются как ошибка. Идеальному устройству вывода присваивается 32767. У реального устройства намного меньше (800х600).

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

Значение флага обычно равно 1 и означает, что далее следуют операции для создания изображения. Если здесь записан 0, то заголовок файла используется для настроек параметров ввода-вывода. После заголовка следуют записи неограниченной длины. Структура записи такова:

· Код операции

· Количество пар x, y (количество точек)

· Количество целочисленных значений

· Первое целочисленное значение

В ряде операций целочисленные значения не используются, тогда в третьей строке пишется 0. Разделение похоже на формат DXF. Первые операции определяют подгруппу и подоперации. Количество подгрупп в группе может быть от 1 до 14. Давайте приведём группы без подгрупп.

06 – полилиния

03 – число пар

01 – точка 1

точка 2

точка 3

Команды закрыть сегмент здесь нет.

0B – работаем с примитивами

03 – три набора данных

01 – используем один цвет

04 – изображаем закрашенным

Xц, Yц – координаты центра окружности

aн, aк – начальный и конечный углы проведения

R – радиус

08 – номер цвета закраски

Здесь также может задаваться и шаблон заполнения. Команды шаблона заполнения 17, 18, 19. В команде с номером 17 четвёртая запись может применяться: 0 – не заполняется, 1 – залить цветом, 2 – узор, 3 – заштрихован. Должна быть ещё 7, в которую записан либо узор, либо штриховка.

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

Достоинство: возможность управления вводом-выводом для конкретного устройства, одного и того же изображения на различные устройства.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: