Skip to content
Surf Wiki
Save to docs
general/animated-graphics-file-formats

From Surf Wiki (app.surf) — the open knowledge base

APNG

File format

APNG

File format

FieldValue
nameAnimated PNG
screenshotfile:Animated PNG example bouncing beach ball.png
captionAnimated PNG (APNG) of a bouncing beach ball (displays as a static image in some web browsers)
extension,
mime, ,
ownerMozilla Foundation (adopted by W3C)
genreanimated lossless bitmap image
released
extendedfromPNG
openyes

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 images with a higher color depth and full alpha transparency not available for GIFs. It also retains backward compatibility with non-animated PNG files. It was developed by the Mozilla Foundation in 2004.

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 all of the subsequent 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 in 2001 by the same team as PNG, which is now obsolete. APNG's advantages over MNG are its smaller library size and its compatibility with older PNG implementations.

History and development

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. 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); 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. 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) while insisting on the use of the .png extension instead of .apng, leading to the format not being approved by the PNG Development Group.

The PNG Development Group rejected APNG as an official extension on April 20, 2007, and there have been several subsequent proposals for a simple animated graphics format based on PNG using several different approaches. However, since September 14, 2021, the PNG Working Group has been chartered 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. The Candidate Recommendation was published on September 21, 2023.

On June 24, 2025 it was finally elevated to the Recommendation final status by the W3C.

AdvantageAPNGaNIM
(mPNG)ANGPNG-in-GIFRGBA-in-GIFAni-PNGMNGFallbackFallback qualityBrowser fallbackViewer fallbackEditor fallbackEfficiencySize optimizationReusable image partsStreamingJNG supportImplementationDecoder implementationEncoder implementationPurityStandard compatibilityDistinction still / animatedFile name extensionMIME typeStatus
.png.apng.ang.gif.gif.mng.mng
video/png, image/pngvideo/png, image/pngvideo/angimage/gifimage/gifvideo/mngvideo/mng
vote failed,
implementedvoting?proposedvoting?proposedapprovedapproved,
spotty support

File format

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

  • 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.

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, making APNG backwards compatible. Applications without support for the APNG extension show only the first frame, disregarding the rest of the 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 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.

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).

Support

Mozilla Firefox added support for APNG in version 3 trunk builds on March 23, 2007. However, because libpng is the PNG Group's reference implementation of the official specification, APNG support was not added prior to version 1.8 of the main libpng distribution since it was unratified by the Group before. Iceweasel 3 supports APNG by using Mozilla's unofficial variant of libpng.

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. In 2016, Apple adopted the APNG format as the preferred format for animated stickers in iOS 10 iMessage apps. On March 15, 2017, APNG support was added to Chromium.

FieldSoftwareSupports?Since
Image
processingAPNG Assemblerv. 2.91
cphktool APNG Anime Makerv. 1 (9 June 2009)
APNG Disassemblerv. 1
APNG Optimizerv. 1.0 (28 March 2011)
Chasys Draw IESv. 5.17.05
Clip Studio Paintv. 1.6.7 (7 September 2017)
FFmpegv. 2.7
v. 2.3.13
Gamani GIF Movie Gearv. 4.2 (March 2008)
GIDv. 11 (December 2023)
GIMPPlanned
Honeycamv. 3.48 (29 November 2021)
Honeyviewv. 5.10 (17 February 2015)
ImageJv. 1.41g (3 July 2008)
ImageMagickv. 7.0.10-31 (20 September 2020)
Imaginev. 1.0.2 (4 May 2008)
IrfanViewv. 4.40 (31 July 2015)
Konvertorv. 4.02 (May 2010)
KSquirrel (later SAIL)v. 0.7.2 (3 October 2007)
Paint.NET
PhotoLinev19.5 (11 March 2016)
RealWorld Paintv. 2011.1 (December 2011)
VirtualDub
XnViewv. 1.97.4 (30 April 2010)
Sciter and HTMLayout UI enginessince 2008
KritaKrita Nightly 5.0.0 pre-alpha (since 22 February 2021)
qViewv. 4.0 (31 October 2020)
Browser
enginesWebKit(17 March 2015)
BlinkJune 2017
Web
browsersMozilla Firefox
(Gecko layout engine)v. 3 (17 June 2008)
SeaMonkey
(Gecko layout engine)v. 2
Iceweasel and other Debian rebrandings
(Gecko layout engine)v. 4.0~b12
Safari
(WebKit layout engine)title=Animated PNG (APNG)url=http://caniuse.com/#feat=apngwebsite=Can I use... Support tables for HTML5, CSS3, etc}}
Google Chrome and Chromium
(Blink layout engine)title=7d2b8c45afc9c0230410011293cc2e1dbb8943a7 - chromium/src - Git at Googleurl=https://chromium.googlesource.com/chromium/src/+/7d2b8c45afc9c0230410011293cc2e1dbb8943a7website=chromium.googlesource.com}}
Internet Explorer
(Trident layout engine)
Microsoft Edge [Legacy]
(EdgeHTML layout engine)title=The status of APNG image format in Microsoft Edgeurl=https://developer.microsoft.com/en-us/microsoft-edge/platform/status/apngimageformat/access-date=2017-07-29website=Microsoft Edge Development}}
Microsoft Edge
(Blink layout engine)v. 79
Opera v12 and earlier
(Presto layout engine)v. 9.5 (12 June 2008)
Opera 15 and later
(Blink layout engine)v. 46.0 (22 June 2017)
Pale Moon (Goanna layout engine)v. 27
Mobile
browsersiOS Safariv. 8.0
Firefox for Android
Samsung Internet for Androidv. 7.0
Opera Mobile
Productivity
softwareLibreOfficePlanned

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

References

References

  1. (27 August 2004). "Add APNG support for Mozilla". Mozilla Foundation.
  2. (2 September 2004). "APNG 0.4 [DRAFT]". Vladimir Vukicevic.
  3. martin. (1999-11-11). "Bug 18574 - (mng) restore support for MNG animation format and JNG image format". [[Mozilla]].
  4. "PNG (Portable Network Graphics) Specification, Version 1.1#8.4. Multiple-image extension". [[libpng]].
  5. "APNG Specification, Version 1.0#MIME type". Mozilla.
  6. "ImageMagick can't detect animated PNG".
  7. (2007-04-20). "VOTE FAILED: APNG 20070405a". [[SourceForge]] mailing list.
  8. "Discussion for a simple "animated" PNG format".
  9. (2023-05-24). "PNG Third Edition, Explained".
  10. (2023-09-21). "PNG Specification (Third Edition), APNG: frame-based animation".
  11. Fallback of GIF encapsulated formats is animated.
  12. may lose the entire animation
  13. may lose the animation details, but not the image data
  14. may lose the high-quality PNG image data
  15. Frame composition from multiple parts of the image
  16. not in the current proposal, but could be made possible though only for a single sprite!
  17. Supports both PNG and JNG simultaneously
  18. A distinction between still and animated files can be made visible on file-level by using special extension and mime-type, but cannot be enforced.
  19. A distinction between still and animated files is not visible on file-level, but this is an existing problem for the GIF extension.
  20. Ani-PNG is a new subset of MNG that does not need formal approval, but it uses new PlAY and ReCO chunks which are not yet officially registered.
  21. "APNG Specification - MozillaWiki".
  22. [http://www.libpng.org/pub/png/spec/1.2/PNG-Ordering.html Chunk Ordering Rules] (PNG 1.2 spec)
  23. "Portable Network Graphics (PNG) Specification (Second Edition)".
  24. "Inter-frame Optimization in APNG".
  25. "APNG Assembler".
  26. "Stickers". Signal.
  27. (2007-03-23). "Gran Paradiso Alpha 3 release notes". [[Mozilla]].
  28. (2011-08-26). "Debian Bug #486827 Iceweasel cannot render APNG image". [[Debian]].
  29. "Digital Audio Broadcasting (DAB); MOT SlideShow; User Application (pdf) Specification". ETSI.
  30. "Messaging - Extensions - iOS Human Interface Guidelines". Apple, Inc..
  31. "Anzwix / Chromium / Add support for Animated PNG".
  32. maxst. (15 November 2017). "APNG Assembler".
  33. "cphktool APNG Anime Maker". cphktool.
  34. maxst. "APNG Disassembler".
  35. maxst. "APNG Optimizer".
  36. "Online Help for Chasys Draw IES: File Formats - Other Image Files".
  37. "Online Help for Chasys Draw IES: History".
  38. "CLIP STUDIO PAINT Version 1.6.7 release notes (9/7/2017)".
  39. "FFmpeg Formats Documentation".
  40. "GitHub changelog of FFmpeg".
  41. "FireAlpaca Update History".
  42. "Animated PNG: Simple Animation with an Alpha Channel". Gamani.
  43. "GID (Generic Image Decoder)".
  44. "Issue #1278: Initial APNG load support".
  45. "Honeycam - Version history". Bandisoft International Inc..
  46. "Honeyview - Version history". Bandisoft International Inc..
  47. "ImageJ News". [[ImageJ]].
  48. "ImageMagick - Changelog".
  49. "Imagine - What's new".
  50. "Konvertor - Solutions for Multimedia Processing".
  51. (15 October 2021). "KSquirrel Codecs ChangeLog".
  52. (7 January 2022). "'PNG Animations and Images' FileType Plugin (.PNG, .APNG) [Latest v1.4 2022-01-07]".
  53. "More about animated PNG - Vlasta's blog".
  54. "SourceForge.net: VirtualDub APNG Mod".
  55. While XnView is available for several operating systems, only versions for [[Microsoft Windows. Windows]] have been released since APNG support was added.
  56. "APNG export support".
  57. (22 February 2021). "APNG and WEBP animation export (dbe993da) · Commits · Graphics / Krita".
  58. (Mar 17, 2015). "Animated PNG graphics". [[WebKit]].
  59. (July 4, 2008). "Animated PNG graphics". [[Mozilla]].
  60. (October 1, 2008). "Firefox 3 for developers". [[Mozilla]].
  61. "Animated PNG (APNG)".
  62. "7d2b8c45afc9c0230410011293cc2e1dbb8943a7 - chromium/src - Git at Google".
  63. "Stable Channel Update for Desktop". Chrome Releases.
  64. "The status of APNG image format in Microsoft Edge".
  65. "Web specifications supported in Opera 9.5". [[Opera Software]].
  66. (22 June 2017). "Opera 46 goes final, more quality and Opera's first TV ad". [[Opera Software]].
  67. (29 May 2023). "Projects selected for LibreOffice in the Google Summer of Code 2023: Add APNG import/export support". [[LibreOffice]].
  68. (11 October 2021). "APNG-canvas Library".
Info: Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about APNG — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report