APNG

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
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 FirefoxAPNG появился в версии 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 KSquirrel0.7.2 (позже SAIL[9])
19 декабря2007 XnView1.9.2
3 июля2008 ImageJ1.41g
14 ноября2008 Imagine1.0.4
5 января2010 TweakPNG1.4.0
1 декабря 2011 RealWorld Paint
17 февраля2015 Honeyview5.10

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

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

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

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

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

[править|править код]
Дата Программа/версия
14 сентября 2007 Opera9.5 (пост-альфа)[10]
12 июня 2008 Opera9.5 (окончательная) иOpera Mobile(не поддерживает с 15.0)
17 июня 2008 Mozilla Firefox3.0(а также другое ПО, основанное наGecko,например,SeaMonkey)
2 июня 2014 Safari8.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. 12http:// 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.SourceForgemailing 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 года.