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

История

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

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

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

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

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

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

15 марта 2017 поддержка APNG была добавлена в Chromium.

В июне 2025 года в рамках крупного обновления PNG произошла официальная поддержка формата.

Технические особенности

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

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

Поддержка программным обеспечением

Поддерживают

Дата Программа/версия 3 октября 2007 KSquirrel 0.7.2 (позже SAIL ) 19 декабря 2007 XnView 1.9.2 3 июля 2008 ImageJ 1.41g 14 ноября 2008 Imagine 1.0.4 5 января 2010 TweakPNG 1.4.01 декабря 2011RealWorld Paint 17 февраля 2015 Honeyview 5.10

Не поддерживают ПО компании Adobe (в частности, Adobe Photoshop, Premiere Pro, After Effects; требуются специальные плагины) Paint.NET также требует установки плагина для поддержки APNG.

Поддержка браузерами

Поддерживают Дата Программа/версия 14 сентября 2007 Opera 9.5 (пост-альфа) 12 июня 2008 Opera 9.5 (окончательная) и Opera Mobile (не поддерживает с 15.0) 17 июня 2008 Mozilla Firefox 3.0 (а также другое ПО, основанное на Gecko, например, SeaMonkey) 2 июня 2014 Safari 8.0 (а также на iOS с версии 8.1)14 марта 2017 Браузеры на основе Chromium, в том числе Google Chrome (с 59.0.3042.0) и Microsoft Edge22 июня 2017 Opera (с 46.0)

Не поддерживают Internet Explorer и другие браузеры на основе браузерного движка Microsoft Trident (например, Avant Browser, GreenBrowser). Браузеры, перешедшие на Blink с Gecko, временно не поддерживали APNG: Flock (с версии 3.0 и выше) и Epiphany (с версии 2.28 и выше). По той же причине поддержка APNG прекращена в браузере Opera начиная с версии 15. Браузеры на основе старых версий WebKit (Konqueror, Rekonq, Midori).

Модули для браузеров Для Google Chrome есть специальное расширение для отображения APNG. APNG-анимация отображается посредством конвертирования APNG в анимированный WebP в браузере. Для новой (основанной на Blink) версии браузера Opera также может быть использовано упомянутое выше расширение. Его (как и другие расширения для Chrome) можно установить при помощи расширения Download Chrome Extension. Для Mozilla Firefox 3.x были расширения APNG Edit и Animat. Они позволяли создавать APNG. Существовало расширение svg2apng у Mozilla Firefox 3.x.

Сравнение APNG и MNG

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

Чем создать APNG Дополнения к Mozilla Firefox: APNG Edit Animat Расширения Opera: Screenshoter Программы: APNG Anime Maker JapngEditor VirtualDub APNG Mod GIF Movie Gear Плагины APNG: APNG Plug-In for GIMP APNG Plug-In for Paint.NET Инструменты командной строки: gif2apng apng2gif apngopt apngasm apngdis Онлайн-создание APNG: APNGs.com Animizer.net - создание и редактирование APNG и GIF https://ezgif.com

Факты APNG может быть реализован и через стандартную библиотеку libpng. Для этого надо включить поддержку сторонних блоков. После чего можно сделать собственную реализацию APNG.

См. также PNG GIF Pi

Примечания

Ссылки Mozilla wiki: спецификация APNG Сборник APNG-анимации для проверки поддержки браузером Расширение для Google Chrome, включающее анимацию APNG-изображений Попытка добавить APNG в хром через нативный код (также есть для Android)

Категория:Графические форматы