Anne van Kesteren

APNG Update

In a public (experimental) release, following the initial alpha release, Opera 9.5 added support for APNG. Animated PNG is a small extension on top of PNG that, surprise, enables animation. Alpha transparency and a lot more colors is of course the big advantage here. Demo pages: 1, 2 and 3. APNG Editor add-on for Firefox. The format is quite trivial to support and doesn’t increase the footprint as much as MNG. Another advantage is that it has fallback support so the image does not become completely unusable in browsers that don’t support APNG yet, such as Safari, Internet Explorer and older versions of Opera and Firefox.

The main disadvantage of APNG seems to be that it is currently not a standard. The PNG Group rejected the proposal. Apparently turning PNG into an animation format besides handling still images was not considered to be a good idea. It would need to have a separate media type and all that which kind of defeats the purpose of the format as proposed. There are several counterproposals and there is a page comparing them. Hopefully everyone can draw their own conclusions out of that data.

Also, avoid using pngcrush on APNG files. Use svg2png to convert animated SVG to APNG. That’s it, I think.


  1. Hi Anne,

    Do you know why the browsers choose implements the only spec that has been rejected ?

    What is the point of having standards if none are followed fully, if implementors do as they wish instead of conforming to them ? Do you think the problem lies with the standards vote/approval ?

    Thanks !

    Posted by David at

  2. I think all the browsers would be better served if resources were put towards developing a more complete libmng library, than focusing on apng. I actually found the libpng library easier to use to create a basic mng file with two .png's in it, then the libmng library itself. So while the MNG spec is detailed, the public mng library thats available really doesn't have application layer hooks at a high enough level to make it easy to incorporate into a program.

    Probably this is because the libmng developers weren't sure how exactly each program would best use the chunks. Perhaps now that APNG has been implemented to a browser, some of these questions are already answered and functions can be written out to add to libmng.

    Posted by Paul at

  3. Not a bad start on Opera, but for sure MNG is a more complete format.

    I do not know how much overhead would its implementation require, but for sure, less than SVG.

    Posted by Guti at

  4. David, it was implemented because it was simple and did exactly the desired thing, as explained in the post.

    Paul, you are not really explaining why we would be better served by putting resources into libmng.

    Guti, I don’t think you can really compare SVG and a bitmap animation format. Especially given that SVG has scripting support, supports embedding of video streams, et cetera.

    Posted by Anne van Kesteren at