Подробный гайд по проверке параметров кодирования .cgm

Подробный гайд по проверке параметров кодирования .cgm: типы кодирования, сигнатура файла, точность данных, наборы символов, ограничения и инструменты.

2026.09.25                  


Подробный гайд по проверке параметров кодирования .cgmПодробный гайд по проверке параметров кодирования .cgm Проверка параметров кодирования файлов .cgm (Computer Graphics Metafile) — это многоуровневый процесс, который включает в себя анализ как структуры самого файла, так и значений конкретных параметров. В отличие от многих других форматов, CGM может использовать три различных способа кодирования данных, что и определяет сложность проверки. Ниже представлен подробный гайд, основанный на стандартах ISO/IEC 8632 и профилях применения, таких как WebCGM.




1. Понимание трех типов кодирования CGM

Первым шагом является определение того, какой тип кодирования используется в вашем файле.

Согласно стандарту, существует три основных способа представления данных:

  • Clear Text Encoding (Кодирование в виде читаемого текста): Данные представлены в виде текстовых строк, которые можно прочитать и отредактировать вручную. Этот формат часто используется для отладки и ручного создания файлов.
  • Character Encoding (Символьное кодирование): Данные кодируются с использованием только печатных символов ASCII (ISO 7-bit). Этот метод обеспечивает компактность и удобство передачи по сети.
  • Binary Encoding (Бинарное кодирование): Данные представлены в виде потока байтов. Это наиболее компактный и эффективный для обработки формат, который часто используется для хранения и передачи внутри систем.

Файлы WebCGM, например, обычно используют бинарное кодирование, но стандарт также допускает и другие варианты.


2. Проверка "магических байтов" (сигнатуры файла)

Самый простой способ убедиться, что файл является CGM, — проверить его начальные байты (сигнатуру). Для файлов CGM стандартная сигнатура — это 42 45 47 4D 46 (в шестнадцатеричном виде), что соответствует ASCII-строке BEGIN MF. Вы можете проверить это с помощью любого hex-редактора.


3. Детальная проверка параметров

Если сигнатура верна, можно приступать к более глубокому анализу. Для бинарного кодирования стандарт FIPS 128 (часть ISO 8632) определяет строгие правила, которые можно проверить.


Проверка точности и типов данных

Эти параметры определяют, как числа хранятся в файле. Их можно проверить, анализируя заголовки элементов или используя специализированные инструменты.

* INTEGER PRECISION:

Должна использоваться только 16-битная точность.

* REAL PRECISION:

Допускается использование только 32-битной фиксированной точки или 32-битной точности с плавающей точкой.

* INDEX PRECISION:

Должна использоваться только 16-битная точность.

* COLOUR PRECISION:

Допускается только 8-битная и 16-битная точность.

* COLOUR INDEX PRECISION:

Также допускается только 8-битная и 16-битная точность.

* VDC INTEGER PRECISION:

Если используются целочисленные VDC, точность должна быть либо 16-битной, либо 32-битной.

* VDC REAL PRECISION:

Если используются VDC с плавающей точкой, точность должна быть либо 32-битной с плавающей точкой, либо 32-битной с фиксированной точкой.


Проверка наборов символов и кодировки текста

Это критически важный аспект, особенно для корректного отображения текста.

* CHARACTER SET LIST:

Список наборов символов должен содержать только два элемента: {(0,4/2), (1,4/1)}, что соответствует ASCII (символ "B") и ISO 8859/1 (символ "A").

* CHARACTER CODING ANNOUNCER:

Если этот элемент используется, его значение должно быть либо 0, либо 1.

* Кодировка по умолчанию:

По стандарту, кодировкой по умолчанию для строковых параметров в начале metafile id является ISO Latin 1.

* UTF-8 и UTF-16:

Если метафайл использует UTF-8, первые 4 октета параметра metafile id должны содержать последовательность ESC 2/5 2/15 4/9. Для UTF-16 используется последовательность ESC 2/5 2/15 4/12. В бинарном кодировании строки Unicode должны быть в формате big-endian.

* Ограничения на переключение ISO 2022:

Использование переключения ISO 2022 запрещено в нетекстовых строках, если оно не разрешено профилем (например, WebCGM).


Проверка ограничений на значения элементов

Профили, такие как CALS CGM Application Profile (MIL-D-28003), накладывают дополнительные ограничения на значения параметров:



  • TRANSPARENCY: Если элемент используется, его значение всегда должно быть 1.
  • Индексы BUNDLE: Значения для LINE, MARKER, FILL и EDGE BUNDLE INDEX должны находиться в диапазоне от 1 до 5.
  • Типы линий и маркеров: LINE TYPE и MARKER TYPE должны быть в диапазоне от 1 до 5 (плюс специальные значения CALS для LINE TYPE).
  • Индексы текста: TEXT BUNDLE INDEX может быть только 1 или 2, а TEXT FONT INDEX — от 1 до 4.
  • Наборы символов: CHARACTER SET INDEX и ALTERNATE CHARACTER SET должны быть 1 или 2.
  • Штриховка и края: HATCH INDEX — от 1 до 6, EDGE TYPE — от 1 до 5.
  • Таблицы: Начальный индекс PATTERN TABLE — от 1 до 8, количество строк и столбцов — от 1 до 16. Начальный индекс COLOUR TABLE — от 0 до 255.
  • Сообщения: Флаг действия в элементе MESSAGE всегда должен быть "no action required".
  • Размеры массивов: Количество цветов в массиве не должно превышать 1048576 для CELL ARRAY, 2048 для PATTERN TABLE и 256 для COLOUR TABLE.
  • Количество точек: Количество точек и VDC в параметрах любого элемента не может превышать 1024.
  • Длина строк: Все строковые элементы ограничены 254 символами, за исключением записей данных, которые могут содержать до 32767 символов.

4. Инструменты для проверки

Ручная проверка всех этих параметров может быть трудоемкой.

Для автоматизации процесса можно использовать следующие подходы:

  • Просмотрщики CGM: Онлайн-инструменты, такие как GroupDocs Viewer, позволяют открыть файл и визуально оценить его корректность.
  • Скрипты и парсеры: Вы можете написать собственный скрипт на Python или другом языке для анализа структуры файла. В открытом доступе существуют примеры парсеров и инструментов для проверки, которые можно адаптировать под свои нужды.
  • Специализированное ПО: Некоторые графические редакторы (например, CorelDRAW) имеют встроенные функции импорта CGM и могут предоставлять информацию о параметрах кодирования.

Важно

Проверка параметров кодирования .cgm требует понимания стандарта и внимательного анализа. Ключевыми моментами являются определение типа кодирования, проверка сигнатуры файла и валидация конкретных параметров точности, наборов символов и ограничений на значения. Использование автоматизированных инструментов и скриптов может значительно упростить этот процесс.


Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.


Статью подготовил: Аверко Денис Сергеевич @Nymexis г. Омск (специалист по ЗИ)

Комментарии

Загрузка...
Если комментарии не загружаются, можете попробовать отключить блокировщик рекламы для этого сайта