Введение

Формат файла Animated Portable Network Graphics (APNG) — это формат файла, расширяющий спецификацию Portable Network Graphics (PNG) для поддержки анимированных изображений, работающих аналогично анимированным GIF-файлам, но с возможностью использования 24- или 48-битных изображений и полной альфа-прозрачности, недоступной в GIF. Он также обеспечивает обратную совместимость с неанимированными PNG-файлами. Первый кадр файла APNG хранится как обычный PNG-поток, поэтому большинство стандартных PNG-декодеров могут отображать первый кадр. Данные о скорости смены кадров и дополнительные кадры анимации хранятся в дополнительных блоках (в соответствии с оригинальной спецификацией PNG). APNG конкурировал с Multiple image Network Graphics (MNG) — комплексным форматом для растровой анимации, разработанным той же командой, что и PNG, но в настоящее время устаревшим. Преимуществами APNG были меньший размер библиотеки и совместимость со старыми реализациями PNG.

История и развитие

Спецификация APNG была создана в 2004 году Стюартом Парментером и Владимиром Вукичевичем из корпорации Mozilla, чтобы обеспечить хранение анимаций, необходимых для таких интерфейсов, как индикаторы загрузки. В мае 2003 года Mozilla отказалась от поддержки анимации MNG, которая предоставляла расширенный набор функций APNG, ссылаясь на большие размеры файлов, требуемые для обширной библиотеки декодеров MNG (300 КБ); декодер APNG, построенный на основе декодера PNG, был значительно меньшим компонентом. Среди пользователей и разработчиков форматов PNG и MNG, APNG был воспринят неоднозначно. В частности, PNG изначально задумывался как формат для одиночных изображений. APNG скрывает последующие кадры в дополнительных блоках PNG таким образом, что приложения, не поддерживающие APNG, будут их игнорировать, однако формат не содержит других изменений, позволяющих программному обеспечению различать анимированные и неанимированные изображения. Некоторые из основных проблем, возникших в связи с этим, заключались в невозможности для приложений согласовывать использование PNG и APNG, различать PNG и APNG после получения или для устаревшего программного обеспечения даже информировать пользователей о наличии дополнительных кадров. Глен Рэндерс Пэрсон возглавил усилия по примирению позиции сторонников чистоты формата PNG с позицией сторонников APNG, предложив внести изменения в формат APNG и использовать уникальный MIME-тип (например, video/png), но сторонники APNG лишь добавили другой MIME-тип (image/apng), при этом настаивая на использовании расширения .png вместо .apng, что привело к тому, что формат не был одобрен Группой разработки PNG. Группа разработки PNG отклонила APNG как официальное расширение 20 апреля 2007 года, после чего было предложено несколько вариантов простого формата анимированной графики на основе PNG с использованием различных подходов. Однако, начиная с 14 сентября 2021 года, Рабочая группа PNG была назначена Всемирным консорциумом веб-технологий (W3C) для поддержки и развития спецификации PNG, и 25 октября 2022 года был опубликован первый публичный рабочий проект спецификации PNG (третье издание), включающий расширения APNG в основную спецификацию PNG. Кандидатская рекомендация была опубликована 21 сентября 2023 года.

Сжатие и оптимизация

Ряд методов оптимизации позволяет добиться минимального размера файлов APNG: оптимизация межкадрового сжатия с использованием операций альфа-смешивания и альфа-удаления, использование субкадров меньшего размера, чем полные кадры, оптимизация прозрачности, цветового типа и цветовой палитры, а также различные варианты сжатия: zlib, 7-Zip, Zopfli.

Форматы, полученные из других форм

Анимированные стикеры для Signal – это APNG с некоторыми ограничениями: размер файла не должен превышать 300 КБ, продолжительность анимации – 3 секунды, а разрешение, по всей видимости (этот момент не совсем ясен), должно быть 512x512 пикселей.

Поддержка

Mozilla Firefox добавила поддержку APNG в сборках версии 3 trunk 23 марта 2007 года. Однако, поскольку libpng является эталонной реализацией официальной спецификации PNG Group, поддержка APNG не может быть включена в основной дистрибутив libpng до тех пор, пока она не будет ратифицирована Group. Iceweasel 3 поддерживает APNG, используя неофициальный вариант libpng от Mozilla. В 2008 году WorldDMB приняла APNG как расширение, обратно совместимое с существующими стандартами, для обеспечения анимации в пользовательском приложении MOT SlideShow для цифрового радио. "Спецификация APNG 1.0 – Анимированная переносимая сетевая графика" включена в качестве нормативного приложения A в стандарт ETSI TS 101 499 V2.2.1. В 2016 году Apple приняла формат APNG в качестве предпочтительного формата для анимированных стикеров в приложениях iMessage для iOS 10. 15 марта 2017 года поддержка APNG была добавлена в Chromium. + Список компьютерных программ и их поддержки APNG, с указанием номеров версий и даты выпуска: Поле Программное обеспечение Поддерживается? С какого времени Обработка изображений APNG Assembler v. 1 cphktool APNG Anime Maker v. 1 (9 июня 2009) APNG Disassembler v. 1 APNG Optimizer v. 1.0 (28 марта 2011) Chasys Draw IES v. 5.17.05 Clip Studio Paint v. 1.6.7 (7 сентября 2017) FFmpeg v. 2.7 FireAlpaca [ja] v. 2.3.13 Gamani GIF Movie Gear v. 4.2 (март 2008) GID Только чтение v. 11 (декабрь 2023) GIMP Honeycam v. 3.48 (29 ноября 2021) Honeyview v. 5.10 (17 февраля 2015) ImageJ v. 1.41g (3 июля 2008) ImageMagick v. 7.0.10 31 (20 сентября 2020) Imagine v. 1.0.2 (4 мая 2008) IrfanView Только чтение v. 4.40 (31 июля 2015) Konvertor v. 4.02 (май 2010) KSquirrel (позже SAIL) Только чтение v. 0.7.2 (3 октября 2007) Paint.NET RealWorld Paint v. 2011.1 (декабрь 2011) VirtualDub XnView Только чтение v. 1.97.4 (30 апреля 2010) Sciter и HTMLayout UI engines Только чтение с 2008 года Krita Krita Nightly 5.0.0 pre alpha (с 22 февраля 2021) qView Только чтение v. 4.0 (31 октября 2020) Графические движки WebKit (17 марта 2015) Blink Июнь 2017 Веб-браузеры Mozilla Firefox (графический движок Gecko) v. 3 (17 июня 2008) SeaMonkey (графический движок Gecko) v. 2 Iceweasel и другие ребрендинги Debian (графический движок Gecko) v. 4.0~b12 Google Chrome и Chromium (графический движок Blink) v. 59 (5 июня 2017) Internet Explorer (графический движок Trident) Microsoft Edge (графический движок Blink) v. 79 Opera v12 и более ранние (графический движок Presto) ✔ v. 9.5 (12 июня 2008) Opera 15 и более поздние (графический движок Blink) ✔ v. 46.0 (22 июня 2017) Pale Moon (графический движок Goanna) ✔ v. 27 Мобильные браузеры iOS Safari Планируется

Существует серверная библиотека, позволяющая веб-браузерам, поддерживающим тег canvas, но не поддерживающим APNG, отображать APNG. Примерами таких браузеров являются Microsoft Edge и Internet Explorer 9.