PNG Image
PNG
- Format Type : Image
- Endian Order : Big Endian
Format Specifications
// PNG Image file format
// big endian
// header
8 bytes - magic // "89 50 4E 47 0D 0A 1A 0A" (PNG)
// chunks
num_of_chunks *
{
4 bytes (uint32) - chunk data size
4 bytes (char) - chunk type // e.g. "IHDR"
x bytes - chunk data
4 bytes - CRC
}
Critical chunks
IHDR chunk data
This chunk have to occur as the first one in the PNG file, right after header.
4 bytes (uint32) - image width
4 bytes (uint32) - image height
1 byte (uint8) - image depth // valid values are 1, 2, 4, 8, or 16
// e.g. 8bpp
1 byte (uint8) - color type // It is sum of the following values:
// 1 (palette used)
// 2 (color used)
// 4 (alpha channel used)
// Valid values are 0, 2, 3, 4, and 6.
1 byte (uint8) - compression method // "0" - deflate
// Note: deflate is mandatory for all standard PNG files
1 byte (uint8) - filther method // "0" - adaptive filtering with five basic filter types
1 byte (uint8) - interlace method // "0" - no interlace
// "1" - Adam7 interlace
// TODO - add more chunk descriptions
Ancillary chunks
zTXt chunk data
x bytes - keyword // up to 79 bytes, e.g. "Raw profile type iptc" 1 byte - null separator 1 byte - compression method // "0" - deflate x bytes - compressed text
Metadata
PNG supports storing metadata information like Exif, XMP and IPTC.
Metadata can be easily edited with tools like TweakPNG, ExifTool or Metadata++.
Comparsion of all editors can be found here.
Metadata can be stored in text chunks like tEXt and zTXt.
MultiEx BMS Script
Not written yet.
Notes and Comments
None.
Compatible Programs
- IrfanView
- GIMP
- MS Paint
Games
List of games using this file format:
- Ragnarok Journey
- Styx: Shards of Darkness
- The Fall of Lazarus
- The Tribez
- Hamsterball
- Many more...
See Also