Формат 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

 

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