Slashdot Mirror


Presenting APNG: Like MNG, Only Better

An anonymous reader writes "It's fair to say that most people love PNG images (or at least hate GIFs). However, the one advantage GIFs have over PNGs is that they can be animated. There is, of course, an animated version of PNG, MNG, but few programs can view these images (mainly because the MNG decoder is so large that the likes of Mozilla refuse to include it). But there may be an answer coming: Vladimir Vukicevic and Stuart 'Pavlov' Parmenter (of Mozilla fame) have put together a specification for APNG (Animated Portable Network Graphics)." (Read more below.)

"Unlike MNG, APNG is not a separate file format, but rather an extension to PNG. Thus, APNG images are just normal PNG images (with the .png extension) but can be animated. The system is fully backwards-compatable, so any program that can open a PNG image will be able to open an APNG image (though non-APNG viewers will only show the first frame). Vitally, the decoder just adds an extra few kilobytes onto a standard PNG decoder. APNG support is in the process of being checked into Mozilla. Hopefully, other programs will follow suit."

14 of 424 comments (clear)

  1. WIP by Mekabyte · · Score: 5, Informative

    Discussion can be found here: http://bugzilla.mozilla.org/show_bug.cgi?id=257263

  2. Re:Don't hate it by Anonymous Coward · · Score: 4, Informative

    Why not? They're generally bigger than PNG, don't support 24-bit color, 8-bit transparency, etc.

  3. Re:MNG is being checked out of Firefox by CRCulver · · Score: 4, Informative

    MNG is being discontinued, as are a lot of features including the Javascript Console. "Bloat", they calls it.

    Not to worry, though. Nearly everything that is taken out of the Firefox core can be reimplemented as an extension. I know I've been loving my Mozilla Calendar, and Web Developer extensions. There's no reason that the Javascript Console can't just become a plugin.

  4. Re:Stupid Question by carambola5 · · Score: 4, Informative

    Weather radar loops. Rather than have the client dl multiple jpegs and sequence them with javascript (eww, javascript), the client need only download a single apng.

    For an example, check out weather.com's "map in motion" for your locale. Then, check the source of the page. Much cleaner to simply have an <img> tag.

    --
    IWARS.
    People, in general, disappoint me. Politicians even more so.
  5. Re:Don't hate it by bofkentucky · · Score: 4, Informative

    Can someone mod the parent down, PNG and Gif are both lossless (If you are talking about a 256 color (8 bit) palette.

    --
    09f911029d74e35bd84156c5635688c0
  6. Two Uses of Flash by GeekDork · · Score: 4, Informative

    There are only two valid reasons to include Flash in a web document: sound (for which there should be a global setting in the Flash plugin) and stick fights (SVG anyone?). Everything else does nothing but reduce useability and accessibility. The absolute kicker are flash intros with the skip button embedded instead of a normal link.

    And: what do you need flash or MNG/APNG for if all you want is a red/green-annoyance? To make really good fakes of Luna GUI elements?

    --

    Fight hunger. Filet a politician and send him to a 3rd world country of your choice.

  7. Header size by maxence · · Score: 4, Informative
    the one advantage GIFs have over PNGs is that they can be animated

    Another advantage GIF has over PNG is its smaller header size which makes small images lighter. A typical 16x16 GIF icon weighing about 100 bytes will translate into a PNG of 200 bytes or more.

    That may sound like nitpicking but it can still matter, for example when transferring images to mobile phones.

    1. Re:Header size by Anonymous Coward · · Score: 5, Informative
      You're exaggerating a little, I think.

      Experiment #1: 1x1 white pixel. Results: GIF 35 bytes; PNG 67 bytes.

      Experiment #2: typical Slashdot icon resized to 16x16. Results: GIF 282 bytes; PNG 277 bytes.

      I don't see the header size making a huge difference. What does make a moderate difference is that PNG is not bound to 256 colours. You can use a 16-colour palette, in which case pixels are packed in 4 bits each. You can use a 4-colour palette, in which case pixels are packed in 2 bits each. Pixels can be of many different depths between 1 bit and 48 bits. GIF does not have this flexibility.

      This is important because icons very rarely use more than 16 colours. PNG gives a win in these cases.

  8. Re:Why I don't use PNG by typhoonius · · Score: 4, Informative

    * MSIE support sucks. It is getting better, but it still sucks (yes, I know this is a Microsoft issue not a PNG issue, but I'm not trying to place blame here.)

    The only PNG features IE doesn't support are 8-bit transparency and animation.

    Obviously, GIFs don't give you a full alpha channel either, so the first feature is moot. IE supports 1-bit transparency in PNGs, which puts them on par with GIFs.

    PNG animation is a mess (when Mozilla leaves MNG support out because it's too bloated, you know something's wrong), but that a problem APNG hopes to solve. Remember that IE is being worked on again, so who knows? It has a chance of being implemented (certainly moreso than MNG does, anyway).

    * Gamma value variation. Look at a PNG on one browser, and the blue value will match #0000CC, but look in another browser on another OS, and IT WON'T! Talk about maddening... this is one situation where the extra control by having the ability to specify a gamma value is a curse, not a blessing.

    PNGCrush and PNGOut both get rid of the gamma value. You should run all your PNGs through one of those programs anyway to get the smallest file size, so it's a minor issue. Otherwise, get rid of it manually with TweakPNG.

    It sounds like a lot of work to process a single image, but spending time shrinking download time is something web designers have been doing for over a decade (although I know a lot of people are lazy in the broadband age; it really isn't much more work, though, once you get into the habit of doing it and write some scripts to automate most of it, and it's worth it for the smaller file sizes and the 24-bit color).

  9. Re:Don't hate it by mgv · · Score: 5, Informative

    16,777,216 != infinity :-)

    Actually, there is no point getting an infinite number of colours because:

    1) Most displays cannot show that many colour
    2) Even with a display that does 16 777 216 colours, the human eye cannot distinguish between that many shades (particularly in the blue region) which is why 16 bit colour (which has 5 + 6 + 5 bits to divide amongst the red, green & blue) puts the extra information into the green (I think, could also be red, but its never the blue)

    3) Most RGB displays, while they have gradations finer than the eye can distinguish, cannot show the full spectrum in width (from 400nm to 700nm wavelengths). You can put as many bits as you want on to any consumer display, there are colours it simply cannot do.

    4) Humans vary in their ability to see colour, making alot of the finer gradations imprecise. 8% of males have altered colour vision - as do a small percentage of women and those bits are really wasted on them. On the other hand, if you have had cataract surgery, the implantable lens will let in low end ultraviolet (which your retina can see) that our natural lens does not allow through. Not that I'm suggesting that it is good to see into the UV range :)

    My 2c worth

    Michael

    --
    There is no cryptographic solution to the problem where the intended receiver and the attacker are the same entity.
  10. Re:Stupid Question by iabervon · · Score: 4, Informative

    Go to about:config, find image.animation_mode, and set it to "no". I actually set mine to "once", which means that I see animated images if I'm actually watching; I generally iconify the browser and do something else while pages load, so I miss all the ads, but I can actually watch a weather image if I want. As far as I can tell, there's no documentation for this anywhere.

  11. Re:Why wasn't animation included in the first plac by sppavlov · · Score: 5, Informative

    APNG files _are_ PNG files. We didn't create a whole new format (since that would be silly) so APNG files will still be .PNG files. The first frame in an APNG file looks to current PNG decoders to just be a regular PNG. The APNG spec specifies some additional chunks that if found tell an APNG aware decoder how to find the rest of the frames.

  12. Re:Too bad we can't use it by Ark42 · · Score: 4, Informative



    If you don't want to use the ugly IE5.5+ hack for alpha PNGs, you can at least set the background color setting in the PNG, which IE will use to blend into. I think you can set the background color tag from a pngcrush command line parameter if your software doesn't support that feature.

    For example alpha-msg.png should show a message written in magenta (the background color) if your browser blends using the background color of the PNG instead of the background color of the page. If your background color is white, you won't see any message if you are using Mozilla/Firefox/Opera. If you put that image in a div with a white background and use a IE5.5+ alpha hack of some sort, the image's message actually makes sense too.

  13. Re:An unfortunate hack by sppavlov · · Score: 4, Informative

    We are changing the format of APNG so that all the frames live inside of a single IHDR/END. This should resolve any problems you might have. v0.3 of the spec (should be out tomorrow) will have these changes.