Этот векторный формат является стандартным для большинства объектов файлов, предусматривает работу с метафайлами, поскольку изображение хранится в виде описания, то устройство ввода/вывода используется в полную силу. Состоит из заголовка файла и части, хранящей собственно изображение. Размер заголовка постоянный – это 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, в которую записан либо узор, либо штриховка.
|
|
Размер метафайла не ограничен. Записи следуют одна за другой. Формат этого типа относится к хорошо отработанным и не имеет конфликтных ситуаций, имеет довольно громоздкий результат. Описание очень длинное.
Достоинство: возможность управления вводом-выводом для конкретного устройства, одного и того же изображения на различные устройства.