PNG Image

From XentaxWiki
Revision as of 14:27, 26 January 2021 by imported>Ikskoks (→‎zTXt chunk data)
Jump to navigation Jump to search

PNG


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