APNG

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Animated Portable Network Graphics

Animated PNG example bouncing beach ball.png
Пример APNG (в большинстве браузеров отображается статичной картинкой, за исключением основанных на Gecko и Presto, а также Safari)

Расширение

.png или .apng

Опубликован

август 4, 2008 (2008-08-04)

Тип формата

растровая графика

Расширен из

PNG

Открытый формат?

Да

APNG (Animated Portable Network Graphics) — формат изображений, основанный на формате PNG и предусматривающий возможность хранения анимации, аналогичной используемой в формате GIF, а также цветов прозрачности (прозрачность 8 бит в противовес одному прозрачному цвету в GIF-изображениях).

История[править | править вики-текст]

Спецификация APNG была разработана Стюартом Парментером и Владимиром Вукичевичем из Mozilla Corporation для хранения элементов интерфейса, таких, как анимация загрузки. Mozilla ранее отказалась от MNG (более мощного формата, поддерживающего все возможности APNG) из-за немалого размера MNG-библиотеки;[1] декодер APNG, построенный прямо на библиотеке PNG, был намного меньше.

APNG был плохо встречен людьми, сопровождавшими спецификации PNG и MNG, они подчёркивали, что «PNG — это формат для неподвижных изображений».[2] APNG хранит все кадры, кроме первого, в дополнительных блоках PNG-файла, и работающие с PNG программы будут игнорировать их. В числе возражений — невозможно договориться с сервером о том, что выдавать, PNG или APNG, сложно отличить один от другого, а старая программа даже не предупредит, что есть дополнительные кадры. Таким образом, в Mozilla повторили ту же ошибку, которую совершили разработчики GIF 15 лет назад. Гленн Рэндерс-Персон предложил дать APNG новый MIME-тип наподобие video/png, но Mozilla отказалась от этих предложений в пользу полной обратной совместимости.

20 апреля 2007 года группа PNG официально отказалась признать APNG.[3] Были ещё несколько предложений простейшего анимационного формата, основанного на PNG, но не прошли и они.[4]

В Mozilla Firefox APNG появился в версии 3, 23 марта 2007 года.[5] Но, поскольку libpng поддерживается всё той же группой PNG, поддержки формата APNG, скорее всего, в ней никогда не будет. Браузер Iceweasel в Debian долго не поддерживал APNG, но и он в 2011 году перешёл с официальной библиотеки на модификацию Mozilla.[6]

Роль Mozilla в продвижении формата APNG сравнивается с ролью Netscape в продвижении анимационного GIF.

Также APNG используется для слайдшоу во многих форматах цифрового радио.

Технические особенности[править | править вики-текст]

APNG — это расширенный файл PNG. Первый кадр PNG анимации хранится как обыкновенный поток PNG. Декодеры, не поддерживающие APNG, просто отобразят этот кадр. Все кадры, кроме первого, хранятся в дополнительных блоках (chunks) APNG. Дополнительный блок хранит информацию о количестве кадров и повторений анимации.

Чтобы уменьшить размер, APNG использует промежуточный буфер (спецификация называет его кадровым буфером). Каждый кадр имеет свой режим работы с кадровым буфером:

  1. None — сохранять кадр в кадровый буфер.
  2. Background — очищать кадровый буфер.
  3. Previous — не сохранять кадр в кадровый буфер.

Поддержка программным обеспечением[править | править вики-текст]

Поддерживают[править | править вики-текст]

Дата Программа/версия
3 октября 2007 KSquirrel 0.7.2
19 декабря 2007 XnView 1.9.2
3 июля 2008 ImageJ 1.41g
14 ноября 2008 Imagine 1.0.4
5 января 2010 TweakPNG 1.4.0

Не поддерживают[править | править вики-текст]

Поддержка браузерами[править | править вики-текст]

Поддерживают[править | править вики-текст]

Дата Программа/версия
14 сентября 2007 Opera 9.5 (пост-альфа)[7]
12 июня 2008 Opera 9.5 (окончательная) и Opera Mobile (не поддерживает с 15.0)
17 июня 2008 Mozilla Firefox 3.0 (а также другое ПО, основанное на Gecko, например, SeaMonkey)
2 июня 2014 Safari 8.0[источник не указан 85 дней]

Не поддерживают[править | править вики-текст]

Модули[править | править вики-текст]

Сравнение APNG и MNG[править | править вики-текст]

MNG APNG
Является отдельным форматом. Надстройка формата PNG: если декодер не поддерживает APNG, он выведет изображение по умолчанию (например, первый кадр).
Каждый кадр состоит из нескольких слоёв, накладывающихся друг на друга; со слоями проводятся сложные операции наподобие масштабирования и обрезки. Каждый кадр только хранит отличия от предыдущего (на манер GIF). APNG разработан с целью занять «экологическую нишу» анимационного GIF и в то же время избавиться от некоторых его ограничений.
Сложен в реализации — объём спецификации 350 килобайт. Прост в реализации — объём спецификации 30 килобайт.
Если нужно закодировать идущего человечка в 4 кадра, MNG может задействовать тот факт, что 1-й и 3-й кадры совпадают. Не способен на такую оптимизацию.
Чтобы все достоинства формата проявились, требуется объектно-ориентированный редактор анимаций или интеллектуальный кодер. Без этого выигрыш перед APNG незначителен. Формату APNG безразлична внутренняя структура кадров и способ подготовки анимации.

Чем создать APNG[править | править вики-текст]

Дополнения к Mozilla Firefox:

Расширения Opera:

Программы:

Плагины APNG:

Инструменты командной строки:

Онлайн создание APNG:

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]