MNG

Multiple-image Network Graphics
Расширение .mng[1]
MIME-тип video/x-mng[2], image/x-mng и image/x-jng[3]
Опубликован 2001
Тип формата растровая графика
Содержит PNG, JNG
Расширен из PNG[4]
Сайт libpng.org/pub/mng/
png-mng.sourceforge.net/…

MNG (англ. Multiple-image Network Graphics) — формат графических файлов. Поддерживает все возможности алгоритмов сжатия PNG и JPEG (в том числе полупрозрачность и гамма-коррекцию) для создания анимированных изображений. Поддерживается в браузере Konqueror, поддерживался в браузере Mozilla с 2000 до 2003 года.

MNG близко связан с PNG. Когда в 1995 началась разработка формата PNG, разработчики решили не включать поддержку анимации, так как в то время эта особенность использовалась редко. Тем не менее, началась работа над MNG — версией PNG с поддержкой анимации. Первая версия спецификации MNG вышла 31 января 2001.

В настоящий момент MNG не поддерживается популярными ПО и браузерами. Также существует формат APNG, который намного проще MNG.

Преимущества формата

[править | править код]

Основные преимущества формата, по сравнению с GIF (поддерживает анимацию), JPEG (обеспечивает наименьший размер файла за счет потерь при сжатии) и PNG (сжатие без искажений).

  • Анимация
    • полноцветная анимация (по сравнению с палитерной 256-цветной GIF-анимацией)
    • объектно- (спрайтно-) ориентированный подход к анимации с командами управления изображением вместо простой последовательности кадров, как в GIF
    • вложенные циклы для сложной анимации
  • Сжатие
    • более эффективное чем в GIF
    • сжатие с потерями (как в JPEG) и без (как в PNG), по выбору
    • поддержка разностных кадров для увеличения сжатия
  • Дополнительные возможности
    • поддержка прозрачных JPEG кадров
    • поддержка альфа-канала для всех объектов
    • поддержка коррекции гаммы и цвета
    • может включать произвольную текстовую и прочую информацию (допускает сжатие)
    • несколько контрольных сумм для проверки целостности разных частей файла
    • специальная строка идентификации, которая позволяет определить частые типы повреждения (в основном связанные с перекодировкой)
    • определяет нескольких уровней (профилей) поддержки для упрощения реализации
  • Прочее

Технические детали

[править | править код]

В целом структура файлов формата MNG такая же, как и у PNG, отличаясь только в метке идентификации (8A 4D 4E 47 0D 0A 1A 0A в шестнадцатеричном формате) и использовании гораздо большего числа разновидностей блоков (chunk). Кадры MNG сохраняются как PNG или JNG.

Формат MNG представляет собой упрощённый растровый аналог Adobe Flash: каждый кадр состоит из большого количества слоёв, которые можно двигать друг относительно друга, масштабировать и обрезать. Из-за этого поддержка формата MNG довольно сложна.

Также определены две упрощённые версии спецификации: MNG-LC (низкая сложность) и MNG-VLC (очень низкая сложность). Они позволяют реализовать частичную поддержку формата MNG, чтобы уменьшить сложность реализации программы. Это важно для устройств с очень ограниченными ресурсами: мобильные телефоны и т. п.

У MNG ещё нет зарегистрированного типа MIME, но можно использовать video/x-mng или image/x-mng.

Каждый из кадров может быть закодирован в MNG как с потерей информации (JPEG-компрессия), так и без потерь (компрессия LZ77, применяемая в PNG).

Соперники формата

[править | править код]

На данное время главный соперник — GIF, в силу его полной поддержки. Другой альтернативой является APNG. Также может использоваться анимация SVG с внедрёнными PNG- или JPEG-кадрами.

Библиотеку libmng можно портировать при помощи Emscripten. При этом возможен рендеринг через HTML5 (canvas). Также возможна поддержка и динамических MNG.

Примечания

[править | править код]