APNG

Материал из Википедии — свободной энциклопедии
Это текущая версия страницы, сохранённая РобоСтася (обсуждение | вклад) в 10:21, 13 сентября 2024 (checkwiki fixes (1, 2, 9, 17, 22, 26, 38, 48, 50, 52, 54, 64, 65, 66, 76, 81, 86, 88, 89, 101)). Вы просматриваете постоянную ссылку на эту версию.
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску
Animated Portable Network Graphics
Пример APNG (в браузерах, основанных на Trident или старых версиях Webkit и Blink, отображается статичной картинкой)
Пример APNG (в браузерах, основанных на Trident или старых версиях Webkit и Blink, отображается статичной картинкой)
Расширение .png[1] или .apng[1]
MIME-тип image/png
Опубликован август 4, 2008 (2008-08-04)
Тип формата растровая графика
Расширен из PNG
Открытый формат? Да
Логотип Викисклада Медиафайлы на Викискладе

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Не поддерживают

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

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

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

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

[править | править код]
Дата Программа/версия
14 сентября 2007 Opera 9.5 (пост-альфа)[10]
12 июня 2008 Opera 9.5 (окончательная) и Opera Mobile (не поддерживает с 15.0)
17 июня 2008 Mozilla Firefox 3.0 (а также другое ПО, основанное на Gecko, например, SeaMonkey)
2 июня 2014 Safari 8.0[11] (а также на iOS с версии 8.1)
14 марта 2017 Браузеры на основе Chromium, в том числе Google Chrome (с 59.0.3042.0) и Microsoft Edge
22 июня 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:

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

Программы:

Плагины APNG:

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

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

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

Примечания

[править | править код]
  1. 1 2 http://www.iana.org/assignments/media-types/image/vnd.mozilla.apngIANA, 2015.
  2. martin. Bug 18574 - (mng) restore support for MNG animation format and JNG image format. Mozilla (11 ноября 1999). Дата обращения: 30 марта 2010. Архивировано 17 марта 2021 года.
  3. PNG (Portable Network Graphics) Specification, Version 1.1#8.4. Multiple-image extension. libpng. Дата обращения: 30 марта 2010. Архивировано из оригинала 15 июня 2010 года.
  4. VOTE FAILED: APNG 20070405a. SourceForge mailing list (20 апреля 2007). Дата обращения: 19 мая 2012. Архивировано из оригинала 13 февраля 2013 года.
  5. Discussion for a simple "animated" PNG format. Дата обращения: 12 июля 2011. Архивировано из оригинала 26 февраля 2009 года.
  6. Gran Paradiso Alpha 3 release notes. Mozilla (23 марта 2007). Дата обращения: 30 марта 2010. Архивировано из оригинала 9 мая 2010 года.
  7. Debian Bug #486827 Iceweasel cannot render APNG image. Debian (26 августа 2011). Дата обращения: 18 сентября 2011. Архивировано из оригинала 8 января 2016 года.
  8. Anzwix / Chromium / Add support for Animated PNG. Дата обращения: 15 марта 2017. Архивировано 16 марта 2017 года.
  9. SAIL: Squirrel Abstract Image Library.
  10. Opera Desktop Team: Post-Alpha Opera 9.5 Release. Дата обращения: 17 сентября 2007. Архивировано из оригинала 20 октября 2007 года.
  11. Alexis Deveria. Can I use apng? Дата обращения: 30 января 2015. Архивировано 8 апреля 2017 года.