О текстовом (.svg) и двоичном (.svgz) форматах SVG файлов.

В этом посте мы познакомимся со сжатой (двоичной) формой представления данных в SVG-формате.

Нетрудно понять, что, формат svg-файла текстовый, поэтому его код можно просматривать и редактировать даже в Блокноте от MS Windows, помня только, что его расширение должно быть .svg.

Но существует также возможность сжать svg-формат, и тогда он станет двоичным. В этом случае придусмотрено другое расширение - .svgz. При этом svgz-файл будет запускаться так же, как и несжатый, будет раза в 3 меньше весом, правда, открыть его текстовым редактором уже будет нельзя, но это, как будет видно из дальнейшего, легко обходимая проблема.

Как же создать двоичный (сжатый) svgz-файл?

Проще всего это сделать так. Запустить svg-файл в IE (c установленным плагином Adobe SVG Viewer 3.03) и кликнуть по активной области правой кнопкой мыши. В выпадающем меню (это работает плагин) выбираем пункт Save svg as.., а в открывшемся окне сохранения выбираем Тип файла Compressed Scalable Vector Graphics (*.svgz). Все! Если не менять имя файла и его месторасположение, то получим сжатый (уже двоичный!) svgz-файл, который упадет в тот же каталог и под тем же именем, что и текстовый. Разумеется, этому файлу автоматически будет назначено расширение .svgz.

При желании (например, когда надо отредактировать или просто посмотреть исходный код svgz-файла), любой svgz-файл можно преобразовать в соответствующий текстовый svg-файл, проведя приведенную выше процедуру но, выбрав при сохранении файла тип файла Scalable Vector Graphics(*.svg) . В результате мы получим текстовый svg-файл, который уже можем читать и редактировать.

Для любителей тонких деталей отмечу, что алгоритм сжатия аналогичен алгоритму в архиваторе gzip, поэтому можно автономно использовать этот архиватор (или, например, архиватор WinRar, который поддерживает формат .gz). Порядок генерации svgz-файла в этом случае таков:

  1. Давим исходный svg-файл gzip-ом или другим архиватором, поддерживающим формат .gz.
  2. Переименовываем в сжатом файле расширение .gz на расширение .svgz.

Обратная процедура:

  1. Переименовываем вручную расширение .svgz в .gz.
  2. Разархивируем gzip-ом (WinRar-ом) образовавшийся архив, указав расширение .svg.

Всё, дело сделано! Вот, пожалуй, и всё на сегодня. До новых постов!

Владимир В. Блохин.