APNG: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Oleg4280 (обсуждение | вклад) отмена правки 78155918 участника Alex Wazovskiy (обс) http://caniuse.com/#feat=canvas |
→Модули: UPD - возможность работы закрыта |
||
Строка 164: | Строка 164: | ||
=== Модули === |
=== Модули === |
||
*Для Google Chrome есть специальное [https://chrome.google.com/webstore/detail/ehkepjiconegkhpodgoaeamnpckdbblp расширение для отображения APNG]. APNG-анимация отображается с помощью [[Canvas (HTML)|Canvas]] и [[JavaScript]]. |
*Для Google Chrome есть специальное [https://chrome.google.com/webstore/detail/ehkepjiconegkhpodgoaeamnpckdbblp расширение для отображения APNG]. APNG-анимация отображается с помощью [[Canvas (HTML)|Canvas]] и [[JavaScript]]. Начиная с версий вышедших с 2016 года, расширение более не работает<ref>https://chrome.google.com/webstore/detail/apng/ehkepjiconegkhpodgoaeamnpckdbblp/reviews</ref>, поскольку в движке [[Blink]] закрыли возможность окружению дважды загружать PNG картинку с капчёй, что приводило к ошибкам, и сама возможность, для работы данного расширения, была закрыта. |
||
*Для новой (основанной на ''WebKit''/''Blink'') версии браузера Opera также существует [https://addons.opera.com/ru/extensions/details/apng/?display=en расширение для отображения APNG]. |
*Для новой (основанной на ''WebKit''/''Blink'') версии браузера Opera также существует [https://addons.opera.com/ru/extensions/details/apng/?display=en расширение для отображения APNG]. |
||
*Для Mozilla Firefox 3.x были расширения APNG Edit и Animat. Они позволяли создавать APNG. |
*Для Mozilla Firefox 3.x были расширения APNG Edit и Animat. Они позволяли создавать APNG. |
Версия от 04:20, 30 августа 2016
Animated Portable Network Graphics | |
---|---|
Расширение |
.png [1] или .apng [1] |
MIME-тип | image/png |
Опубликован | август 4, 2008 |
Тип формата | растровая графика |
Расширен из | 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-файла, и работающие с PNG программы будут игнорировать их. В числе возражений — невозможно договориться с сервером о том, что выдавать, PNG или APNG, сложно отличить один от другого, а старая программа даже не предупредит, что есть дополнительные кадры. Таким образом, в Mozilla повторили ту же ошибку, которую совершили разработчики GIF 15 лет назад. Гленн Рэндерс-Персон предложил дать APNG новый MIME-тип наподобие video/png
, но Mozilla отказалась от этих предложений в пользу полной обратной совместимости.
20 апреля 2007 года группа PNG официально отказалась признать 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 используется для слайдшоу во многих форматах цифрового радио.
Технические особенности
APNG — это расширенный файл PNG. Первый кадр PNG анимации хранится как обыкновенный поток PNG. Декодеры, не поддерживающие APNG, просто отобразят этот кадр. Все кадры, кроме первого, хранятся в дополнительных блоках (chunks) APNG. Дополнительный блок хранит информацию о количестве кадров и повторений анимации.
Чтобы уменьшить размер, APNG использует промежуточный буфер (спецификация называет его кадровым буфером). Каждый кадр имеет свой режим работы с кадровым буфером:
- None — сохранять кадр в кадровый буфер.
- Background — очищать кадровый буфер.
- 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 |
17 февраля 2015 | Honeyview 5.10 |
Не поддерживают
- ПО компании Adobe (в частности, Adobe Photoshop, Premiere Pro, After Effects; требуются специальные плагины)
- Paint.NET также требует установки плагина для поддержки APNG.
Поддержка браузерами
Поддерживают
Дата | Программа/версия |
---|---|
14 сентября 2007 | Opera 9.5 (пост-альфа)[8] |
12 июня 2008 | Opera 9.5 (окончательная) и Opera Mobile (не поддерживает с 15.0) |
17 июня 2008 | Mozilla Firefox 3.0 (а также другое ПО, основанное на Gecko, например, SeaMonkey) |
2 июня 2014 | Safari 8.0[9] (а также на iOS с версии 8.1) |
Не поддерживают
- Internet Explorer и другие браузеры на основе браузерного движка Microsoft Trident (например, Avant Browser, GreenBrowser).
- Браузеры на основе Blink (например, Google Chrome, Яндекс.Браузер, Chromium, Maxthon 3). Есть попытка добавить поддержку APNG в Blink.
- В связи с переходом на браузерный движок WebKit с Gecko поддержка APNG прекращена в браузерах Flock (с версии 3.0 и выше) и Epiphany (с версии 2.28 и выше). По той же причине поддержка APNG прекращена в браузере Opera начиная с версии 15.
- Konqueror
- Rekonq
Поддержка в будущем
Microsoft Edge и EdgeHTML будет поддерживать APNG, если соответствующий тикет наберёт достаточное число голосов.
Для браузеров на базе Chromium есть готовый патч, включающий поддержку APNG, но сама Google патч забраковала, поскольку намерена и дальше продвигать свой формат WebP.
Модули
- Для Google Chrome есть специальное расширение для отображения APNG. APNG-анимация отображается с помощью Canvas и JavaScript. Начиная с версий вышедших с 2016 года, расширение более не работает[10], поскольку в движке Blink закрыли возможность окружению дважды загружать PNG картинку с капчёй, что приводило к ошибкам, и сама возможность, для работы данного расширения, была закрыта.
- Для новой (основанной на WebKit/Blink) версии браузера Opera также существует расширение для отображения APNG.
- Для 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 2 http://www.iana.org/assignments/media-types/image/vnd.mozilla.apng — IANA, 2015.
- ↑ martin. Bug 18574 - (mng) restore support for MNG animation format and JNG image format . Mozilla (11 ноября 1999). Дата обращения: 30 марта 2010.
- ↑ PNG (Portable Network Graphics) Specification, Version 1.1#8.4. Multiple-image extension . libpng. Дата обращения: 30 марта 2010. Архивировано 4 июня 2012 года.
- ↑ VOTE FAILED: APNG 20070405a . SourceForge mailing list (20 апреля 2007). Архивировано 4 июня 2012 года.
- ↑ Discussion for a simple "animated" PNG format . Дата обращения: 12 июля 2011. Архивировано 26 февраля 2009 года.
- ↑ Gran Paradiso Alpha 3 release notes . Mozilla (23 марта 2007). Дата обращения: 30 марта 2010. Архивировано 9 мая 2010 года.
- ↑ Debian Bug #486827 Iceweasel cannot render APNG image . Debian (26 августа 2011). Дата обращения: 18 сентября 2011. Архивировано 4 июня 2012 года.
- ↑ Opera Desktop Team: Post-Alpha Opera 9.5 Release . Архивировано 12 марта 2012 года.
- ↑ Alexis Deveria. Can I use apng? Дата обращения: 30 января 2015.
- ↑ https://chrome.google.com/webstore/detail/apng/ehkepjiconegkhpodgoaeamnpckdbblp/reviews