A fully-managed APNG Parser
I've been searching for days looking for a simple, easy-to-use animation controller for my game engine until I found this article. Then I noticed I could use APNG to bundle multiply image into one single file and describe the animation process internally (no coding needed). In APNG format, each frame have an
fcTL chunk (frame control chunk), which contains many useful information such as
delay_time. So we can set all these up when we build an APNG and copy it directly to game folder - no any coding needed.
PNG and APNG specification support status
- For simple PNG, All chunks but
IENDare unsupported, and will be ignored during the parsing.
- For APNG, the library can only parse
- Multiply frame sizes are supported. This means you can reduce the file size by using Differential Frames. (use APNG Anime Maker)
- Differential frames support in
About the code
This repository contains 5 projects:
An managed DLL which handle parsing APNG image file. This library is backward-compatible: It means you can use this library to read an simple PNG image, with no error produced.
APNG Test Extractor
A test application which can extract each frame of an APNG to standalone PNG files.
Component for Microsoft XNA:
APNG Wrapper for XNA
A simple game which use an APNG as animation (NOT USING CONTENT PIPELINE).
Content Pipeline for APNG Images
Compile .apng file into .xnb assets, which can significantly reduce the load time (We move those costs from running to compiling).
Test Game that Use Content Pipeline for Loading APNG Images
To compile this project, you must have these components installed:
- Visual Studio 2013.
- Microsoft XNA Game Studio 4.0 or Windows Phone SDK 7.1
- PNG (Portable Network Graphics) Specification
- APNG (Animated Portable Network Graphics) Specification
- APNG Anime Maker
by Amemiya, 2013.