  APNG Disassembler 2.4
 
  Deconstructs APNG files into individual frames.
 
  http://apngdis.sourceforge.net/
 
  Copyright (c) 2010-2011 Max Stepin
  maxst@users.sourceforge.net

  License: zlib license

--------------------------------

  Changes in version 2.4:

- Always creates output files in the same directory as the original animation
- Writes delay information into .txt files
- "apngframe" can be replaced by some other name
- General code cleanup
- zlib license

--------------------------------

  Usage: 

apngdis apng.png

--------------------------------


  Old readme.txt:


Thank you for you interest in APNG Disassembler. 

By making this program, I hoped to achieve two goals:

First is to let you edit existing APNG files by deconstructing them into individual frames.
After editing PNG frames in Photoshop/GIMP/etc you can put them back into APNG 
using APNG Assembler ( http://apngasm.sourceforge.net/ )

Second is to provide relatively simple reference source code for proper APNG rendering. 
That means correctly handling all blend/dispose combinations, in all color modes/depths.

You could use this source code to make your application interface fancier, 
or add support for 800th format in your image viewer. 
But before you do that, let me explain how to choose the right version:

version 2.1 
- Saves frames in RGBA mode. 
- Stores only current frame in memory.

version 2.2 
- Saves frames in RGBA mode. 
- Stores all frames in memory.

version 2.3 
- Saves frames in original color mode.
- Stores all frames in memory.


Saving frames in original color mode is useful if you plan to assemble them back
using APNG Assembler, but it makes the source code for v.2.3 more complex.

If you only need to display APNG frames, check out versions 2.1 or 2.2 instead.
After decoding you'll get 32 bpp memory block in RGBA format, and sending it 
to the screen is quite simple.

You should choose between versions 2.1 and 2.2 based on your memory requirements:
keeping all decoded frames in one big memory block like v.2.2 does is certainly simpler, 
but if you can't do that, use v.2.1, as it keeps in memory just the current frame. 

Time delay between frames is d1/d2 seconds. 

APNG Disassembler doesn't use libpng, it only needs zlib. 
Compiles under Windows (tested with MSVC) and Linux (tested with GCC):

gcc -O2 -lz apngdis.c -o apngdis

M.
