Анімований PNG (.apng)
Звіт СтандартAnimated Portable Network Graphics (APNG) розширює стандартний формат PNG підтримкою багатокадрової анімації з повноцінним 24-бітним кольором Truecolor та 8-бітним альфа-каналами прозорості, зберігаючи зворотну сумісність зі стандартними декодерами PNG.
Конвертувати з APNG у GIF
Безкоштовний конвертер з APNG у GIF у браузері. Миттєво конвертуйте файли на своєму пристрої.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли APNG, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли APNG, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):
89 50 4E 47 0D 0A 1A 0AASCII-УЯВЛЕННЯ: ‰PNG....
Стандартизація: Звіт групи спільноти W3C (2021) / Розширення Mozilla
Технічні характеристики
| Архітектура контейнера | Потік чанків PNG із чанками acTL (керування анімацією), fcTL (керування кадрами) та fdAT (дані кадрів) |
| Стиснення | Алгоритм стиснення Deflate (zlib) з ковзним вікном LZ77 та застосуванням двовимірної адаптивної фільтрації для кожного кадру |
| Порядок байтів (Endianness) | Прямий порядок байтів (мережевий порядок байтів) |
| Колірні простори | sRGB, Display P3, Вбудований профіль ICC (iCCP) |
| Канали та структура | RGBA (8-біт або 16-біт на канал Truecolor + 8-біт альфа-канал) |
| Максимальні розміри | 2 147 483 647 x 2 147 483 647 пікселів (31-бітне обмеження PNG) |
| Прозорість | Повна 8-бітна альфа-прозорість (256 рівнів плавної напівпрозорості) |
| Потокове та прогресивне завантаження | Потокове передавання чанків; негайно рендерить перший кадр на застарілих парсерах PNG, що не підтримують анімацію |
Технічна матриця порівняння: APNG проти конкурентів
| Технічний атрибут | APNG (Поточний) | GIF | WEBP | AVIF |
|---|---|---|---|---|
| Глибина кольору | 24-біт RGB (16.7 млн кольорів) | 8-біт індексований (256 кольорів) | 24-біт RGB (16.7 млн кольорів) | 10-біт / 12-біт HDR |
| Альфа-прозорість | 8-біт плавна альфа (256 рівнів) | 1-біт увімк./вимк. бінарна маска | 8-біт плавна альфа | 8-біт / 10-біт плавна альфа |
| Зворотна сумісність | Відображається як статичний PNG у застарілих програмах | Універсальний застарілий GIF | Відсутня у застарілих програмах | Відсутня у застарілих програмах |
| Ефективність стиснення | Deflate (помірна) | LZW (низька) | Ключові/диференційні кадри VP8 (висока) | Міжкадлове стиснення AV1 (надвисока) |
Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі
Анімація відтворює лише перший кадр і ніколи не зациклюється та не просувається далі.
Першопричина: Відсутній або пошкоджений чанк 'acTL' (керування анімацією), розташований перед першим чанком IDAT.
Відновлення: Перепакуйте кадри за допомогою apngasm або File2File Animation Converter, щоб відновити дійсні чанки керування анімацією.
Аналіз безпеки та векторів атак на парсери
Аналізатори APNG обробляють повторювані чанки керування кадрами, де невірні розміри можуть викликати переповнення цілих чисел або вичерпання купи пам'яті.
Відомі вектори атак
- Переповнення цілих чисел при обчисленні зміщення кадру (x_offset / y_offset), що призводить до компонування кадру за межами буфера.
- Невідповідність ширини та висоти кадру, що призводить до читання за межами буфера під час змішування кадрів.
- Нескінченні цикли декомпресії анімації, що вичерпують ресурси процесора в службах генерації ескізів на сервері.
Захисні найкращі практики: Перевіряйте загальні межі анімованого полотна та обмежуйте максимальну допустиму кількість кадрів перед растеризацією.
Історичне походження та віхи
Головні переваги та плюси
- Повний 24-бітний колір RGB плюс 8-бітна прозорість альфа-каналу, що повністю усуває артефакти зубчастих країв 1-бітної прозорості GIF.
- 100% зворотна сумісність із застарілими декодерами PNG (які без проблем відображають основний резервний кадр).
- Універсальне нативне апаратне прискорення відтворення у всіх сучасних десктопних, iOS та Android браузерах.
Технічні обмеження та мінуси
- Більші розміри файлів порівняно з сучасними відеоформатами анімації, такими як WebM або MP4.
- Вища складність кодування та навантаження на центральний процесор під час генерації порівняно із застарілим GIF.
- Відсутність прогнозування рухомих векторів між кадрами, що наявне у спеціалізованих відеокодеках.
Цікаві технічні факти
- Офіційна група розробників PNG відхилила APNG у 2007 році на користь окремого формату MNG, який зрештою не здобув популярності.
- Компанія Apple використовувала APNG для анімованих стікерів у магазині застосунків iMessage в iOS 10, що стимулювало масове поширення на мобільних пристроях.
- Якщо ви відкриєте файл APNG у давній програмі для перегляду зображень з 1990-х років, вона просто покаже перший кадр без аварійного завершення роботи.
Поширені технічні запитання
Чому APNG кращий за GIF?
APNG підтримує 16.7 мільйона кольорів та 256 рівнів плавної прозорості альфа-каналу, тоді як GIF обмежений 256 кольорами та різкою 1-бітною прозорістю.
Чи підтримує кожен браузер APNG?
Так. Кожен сучасний браузер (Chrome, Safari, Firefox, Edge) нативно підтримує APNG з 2017 року.
Чи можу я конвертувати APNG у стандартний GIF або MP4?
Так. File2File.app може конвертувати анімації APNG у легкі файли GIF, MP4 або WebM безпосередньо у вашому веббраузері.
Пов'язані пари конвертації APNG
Конвертація анімованих файлів PNG у формат GIF знижує якість зображення до 256 кольорів, але гарантує відтворення у старіших веббраузерах і додатках для обміну повідомленнями.
Перетворення анімованого файлу GIF на файл APNG оновлює застарілу 256-колірну растрову анімацію до сучасної повноколірної послідовності з плавним прозорим тлом.