APNG

APNG

APNG

File format


Animated Portable Network Graphics (APNG) is a file format which extends the Portable Network Graphics (PNG) specification to permit animated images that work similarly to animated GIF files, while supporting 24 or 48-bit images and full alpha transparency not available for GIFs. It also retains backward compatibility with non-animated PNG files.

Quick Facts Filename extension, Internet media type ...

The first frame of an APNG file is stored as a normal PNG stream, so most standard PNG decoders are able to display the first frame of an APNG file. The frame speed data and extra animation frames are stored in extra chunks (as provided for by the original PNG specification). APNG competed with Multiple-image Network Graphics (MNG), a comprehensive format for bitmapped animations which was created by the same team as PNG and is obsolete. APNG's advantage was the smaller library size and compatibility with older PNG implementations.

History and development

An APNG of an MRI scan of a human head

The APNG specification was created in 2004 by Stuart Parmenter and Vladimir Vukićević of the Mozilla Corporation to allow for storing the animations needed for interfaces such as throbbers.[1][2] In May 2003, Mozilla had scrapped support for MNG animations, which provides a superset of APNG functionality, citing concerns about the large file size required for the expansive MNG decoder library (300 KB);[3] the APNG decoder, built on the back of the PNG decoder, was a much smaller component.

Among users and maintainers of the PNG and MNG formats, APNG had a lukewarm reception. In particular, PNG was conceived to be a single-image format.[4] APNG hides the subsequent frames in PNG ancillary chunks in such a way that APNG-unaware applications would ignore them, but there are otherwise no changes to the format to allow software to distinguish between animated and non-animated images. Some of the main concerns arising from this were the inability of applications to negotiate for PNG and APNG, or distinguish between PNG and APNG once received, or for legacy software to even inform users that there are additional frames. Glenn Randers-Pehrson spearheaded efforts to reconcile the PNG purists' position with that of APNG proponents by recommending changes to APNG's format and proposing the use of a unique MIME type (e.g., video/png), but the APNG proponents only added the different MIME type (image/apng)[5] while insisting on the use of the .png extension instead of .apng, leading to the format not being approved by the PNG Development Group.[6]

The PNG Development Group rejected APNG as an official extension on April 20, 2007,[7] and there have been several subsequent proposals for a simple animated graphics format based on PNG using several different approaches.[8] However, since September 14, 2021, the PNG Working Group has been charted by the World Wide Web Consortium (W3C) to maintain and develop for the PNG specification, and the first public working draft of PNG Specification (Third Edition) was published on October 25, 2022, adding APNG extensions to the core PNG specification.[9] The Candidate Recommendation was published on September 21, 2023.[10]

File format

The APNG specification follows the PNG File format introducing three new ancillary chunks:[11]

  • The animation control chunk (acTL) precedes the IDAT(s) of the default image and is a kind of "marker" that this is an animated PNG file. It also contains the number of frames and the number of times to loop the animation (0 meaning infinite).
  • The frame control chunk (fcTL) precedes each frame and contains its metadata : dimensions; position (relative to the default image); duration; if once over it is cleared to black, replaced by the previous frame or drawn over by the next frame; and if its transparency applies.
  • The frame data chunk (fdAT) storing frame's content. It starts with a sequence number, then has the same structure as the default image's IDAT chunk(s).

Sequence numbers apply to both frame control and frame data chunks, which together follow a common sequence, thus enabling the order and timing of frames to be recovered should an APNG-unaware PNG editor re-order them as allowed by PNG chunk ordering rules.[12]

Frames utilize the same bit depth, color type, compression method, filter method, interlace method, and palette (if any) as the default image.

An application reading a PNG file is meant to ignore any chunks which it does not understand,[13] making APNG backwards compatible. Applications without support for the APNG extension show only the first frame, disregarding additional animation frames.

Diagram illustrating a possible way to assemble an animated PNG from three individual PNG files

Compression and Optimization

A number of optimization techniques make APNG files as small as possible: Inter-frame optimization [14] utilizing alpha-blend and alpha dispose operations, smaller than the full-size subframes, dirty transparency, color type and color palette optimizations, and various compression options: zlib, 7-Zip, Zopfli.[15]

Derived formats

Animated stickers for Signal are APNG with some restrictions (the size of the file is limited to 300kb, the length of the animation is limited to 3 seconds and, visibly (this last point is unclear), the resolution must be 512x512px).[which?][16]

Support

The logo of APNG Assembler, free software to create APNG images

Mozilla Firefox added support for APNG in version 3 trunk builds on March 23, 2007.[17] However, because libpng is the PNG Group's reference implementation of the official specification, APNG support can never be supported in the main libpng distribution so long as it remains unratified by the Group. Iceweasel 3 supports APNG by using Mozilla's unofficial variant of libpng.[18]

In 2008 WorldDMB adopted APNG as a backward compatible extension to enable animation as part of the MOT SlideShow user application for Digital Radio. "APNG 1.0 Specification - Animated Portable Network Graphics" is included as normative Annex A in the ETSI standard TS 101 499 V2.2.1.[19] In 2016, Apple adopted the APNG format as the preferred format for animated stickers in iOS 10 iMessage apps.[20] On March 15, 2017, APNG support was added to Chromium.[21]

More information Field, Software ...
  1. After loading a video, an APNG file can be created via the "File|Export|Animated PNG" menu item.

A server-side library exists that allows web browsers that support the canvas tag, but do not support APNG, to display APNGs.[58] Examples of such browsers include Microsoft Edge and Internet Explorer 9.

See also


References

  1. "Add APNG support for Mozilla". Bugzilla. Mozilla Foundation. 27 August 2004. Retrieved 23 April 2024.
  2. Stuart Parmenter; Vladimir Vukicevic (2 September 2004). "APNG 0.4 [DRAFT]". Vladimir Vukicevic. Archived from the original on 19 November 2004. Retrieved 23 April 2024.
  3. "APNG Specification, Version 1.0#MIME type". Mozilla. Retrieved 2017-12-10.
  4. "Discussion for a simple "animated" PNG format". Archived from the original on 2009-02-26. Retrieved 2011-07-12.
  5. "PNG Third Edition, Explained". W3C GitHub. 2023-05-24.{{cite web}}: CS1 maint: url-status (link)
  6. "Inter-frame Optimization in APNG". littlesvr.ca. Archived from the original on 2014-04-26. Retrieved 2021-10-21.
  7. "APNG Assembler". apngasm.sourceforge.net. Retrieved 2021-10-21.
  8. "Stickers". Signal Support. Signal. Retrieved 28 December 2021.
  9. "Gran Paradiso Alpha 3 release notes". Mozilla. 2007-03-23. Archived from the original on December 26, 2009. Retrieved 2010-03-30.
  10. "Messaging - Extensions - iOS Human Interface Guidelines". developer.apple.com. Apple, Inc. Retrieved 2016-10-12.
  11. maxst (15 November 2017). "APNG Assembler". SourceForge.
  12. "cphktool APNG Anime Maker". cphktool. Archived from the original on 2010-02-09. Retrieved 2010-06-28.
  13. maxst. "APNG Disassembler". SourceForge.
  14. maxst. "APNG Optimizer". SourceForge.
  15. "FireAlpaca Update History". Retrieved 2021-09-04.
  16. "APNG Plug-In". Archived from the original on 2014-05-25. Retrieved 2010-05-28.
  17. "Honeycam - Version history". Bandisoft International Inc. Retrieved 2022-01-09.
  18. "Honeyview - Version history". Bandisoft International Inc. Retrieved 2022-01-09.
  19. "ImageJ News". ImageJ. Archived from the original on May 21, 2009. Retrieved 2009-05-23.
  20. "ImageMagick - Changelog". Retrieved 2021-04-25.
  21. "Imagine - What's new". Archived from the original on October 8, 2011. Retrieved 2017-09-01.
  22. "Konvertor - Solutions for Multimedia Processing". Archived from the original on 2010-05-12. Retrieved 2010-05-19.
  23. "Animated Image 2.4 - AGIF & APNG". Paint.NET Forum. 10 January 2009.
  24. "SourceForge.net: VirtualDub APNG Mod". vdubapngmod.sourceforge.net.
  25. While XnView is available for several operating systems, only versions for Windows have been released since APNG support was added.
  26. "APNG export support". Retrieved 2021-08-16.
  27. "Animated PNG graphics". WebKit. Mar 17, 2015. Retrieved 2015-03-17.
  28. Parmenter, Stuart; Vladimir Vukicevic; Andrew Smith (July 4, 2008). "Animated PNG graphics". Mozilla Developer Center. Mozilla. Archived from the original on 2008-12-04. Retrieved 2009-05-23.
  29. "Firefox 3 for developers". Mozilla Developer Center. Mozilla. October 1, 2008. Archived from the original on 2008-11-13. Retrieved 2009-05-23.
  30. "Animated PNG (APNG)". Can I use... Support tables for HTML5, CSS3, etc.
  31. "Stable Channel Update for Desktop". Chrome Releases. Retrieved 2017-06-06.
  32. "The status of APNG image format in Microsoft Edge". Microsoft Edge Development. Retrieved 2017-07-29.
  33. "Web specifications supported in Opera 9.5". Opera Software. Archived from the original on 2009-02-25. Retrieved 2009-05-23.

Share this article:

This article uses material from the Wikipedia article APNG, and is written by contributors. Text is available under a CC BY-SA 4.0 International License; additional terms may apply. Images, videos and audio are available under their respective licenses.