Формат CGM.
На сегодняшний день это стандарт ISO. Драйверы обязаны быть в любой операционной системе. Разрабатывается на основе стандарта GKS. Основной особенностью является наличие различных способов кодирования символов. Символы могут быть в ASCII, в чисто двоичных кодах или в стандарте ISO 0646 (4 видимых символа).
Кодирование в ASCII – удобно для редактирования изображения. Двоичное кодирование удобно для обработки в компьютере. Кодирование в ISO 0646 – это стандарт для передачи по линиям связи.
Каждая запись кратна двум байтам. Если не будет кратна двум байтам, то дополняется до двух. Структура:
q код записи
q длина списка параметров
q список параметров
Заголовок может иметь краткую и полную форму. При короткой форме записи заголовка код и длина списков помещается в сам заголовок.
15 12 11 5 4 0
Класс термов метафайла. Идентификатор – это и есть терм. Аналоги класса и подкласса.
30 байт – это максимальная длина параметров списков. Этого числа может быть недостаточно для записи параметров. Применяют расширенную форму записи заголовка. Использовано два слова.
5 4
второе слово относится к заголовку
15 14
Пока флаг равен единице, то следующее слово будет восприниматься как продолжение флагов. Это используется часто, так как список обычно больше 128 байт.
Сам список заполняется так: отрицательные числа в дополнительной форме с плавающей запятой. Одну группу данных можно внести в несколько списков параметров. В двоичном кодировании используется 8 классов переменных с числом подклассов от 1 до 35. Этот способ кодирования ориентирован на загрузку файла WMF.
Такая запись ориентирована на создание или редактирование изображения с помощью текстового редактора. Любая команда имеет запись:
код операции___операнд
Количество операндов зависит от количества операций. Знак конца строки / . Цепочки символов включаются в кавычки. Если есть вложенные, то кавычки расставляются по правилам математических операций. Комментарии выделяются слева и справа символом %. Все коды операций и подопераций аналогичны двоичному кодированию. Получается запись, состоящая из букв и цифр, которые можно редактировать легко в текстовом редакторе.
Символы ISO: (вид кодирования). Код операции вообще двухбайтовое слово, а символы ISO имеют 8 разрядов (8 бит), поэтому для одной операции необходимо записать два символа ISO 0646.
3/2; 2/0 SCALEMODE
Записать можно потоком или резервным способами. В начале задаётся длина последовательности. Если кодирование идёт с резервированием, то устанавливается флаг у последней записи в списке.
Второй способ надёжнее, но необходима возможность маскирования по разрядам. В одном файле можно описывать несколько изображений последовательно.
BEGPIC
…
ENDPIC
Особенность этого формата (наличие трёх способов кодирования) позволяет адаптировать различные задачи (оператор, машина и так далее).