Expand description
Low-level PNG API
A PNG file consists of a sequence of Chunk
s in a
specific order.
§PNG Chunk Order
§Key
- Required - Count must be exactly one.
- Optional - Count must be exactly one or zero.
- Multiple - Count can be any number, including zero.
§Order
The PNG/APNG chunk order must be as follows:
- Required
ImageHeader
“IHDR” - In any order:
- Optional
Chromaticities
- Optional
Gamma
“gAMA” - Optional
ColorProfile
“iCCP” - Optional
SignificantBits
“sBIT” - Optional
SRgb
“sRGB” - Optional
Physical
“pHYs” - Multiple
SuggestedPalette
“sPLT” - Optional
Time
“tIME” (If didn’t appear earlier) - Multiple
InternationalText
“iTXt” - Multiple
Text
“tEXt” - Multiple
CompressedText
“zTXt” - Optional
AnimationControl
“acTL” (APNG) - Optional
FrameControl
“fcTL” (APNG) - Optional
ImageOffset
“oFFs” (Extension) - Optional
PixelCalibration
“pCAL” (Extension) - Optional
SubjectPhysical
“sCAL” (Extension) - Multiple
GifGraphicControlExt
“gIFg” (Extension) - Multiple
GifApplicationExt
“gIFx” (Extension)
- Optional
- Optional
Palette
“PLTE” - In any order:
- Optional
Background
“bKGD” - Optional
PaletteHistogram
“hIST” - Optional
Transparency
“tRNS” - Optional
Physical
“pHYs” (If didn’t appear before PLTE) - Multiple
SuggestedPalette
“sPLT” - Optional
Time
“tIME” (If didn’t appear earlier) - Multiple
InternationalText
“iTXt” - Multiple
Text
“tEXt” - Multiple
CompressedText
“zTXt” - Optional
AnimationControl
“acTL” (APNG, If didn’t appear earlier) - Optional
FrameControl
“fcTL” (APNG, If didn’t appear earlier) - Optional
ImageOffset
“oFFs” (Extension, If didn’t appear earlier) - Optional
PixelCalibration
“pCAL” (Extension, If didn’t appear earlier) - Optional
SubjectPhysical
“sCAL” (Extension, If didn’t appear earlier) - Multiple
GifGraphicControlExt
“gIFg” (Extension) - Multiple
GifApplicationExt
“gIFx” (Extension)
- Optional
- Multiple
ImageData
“IDAT” - In any order:
- Optional
Time
“tIME” (If didn’t appear earlier) - Multiple
InternationalText
“iTXt” - Multiple
Text
“tEXt” - Multiple
CompressedText
“zTXt” - Multiple
FrameControl
“fcTL” (APNG) - Multiple
FrameData
“fdAT” (APNG, must be somewhere after “fcTL”) - Multiple
GifGraphicControlExt
“gIFg” (Extension) - Multiple
GifApplicationExt
“gIFx” (Extension)
- Optional
- Required
ImageEnd
“IEND”
Structs§
- Compressed Text Chunk Data (zTXt)
- Image Data Chunk Data (IDAT)
- Image End Chunk Data (IEND)
- Image Header Chunk Data (IHDR)
- International Text Chunk Data (iTXt)
- Palette Chunk Data (PLTE)
- Physical dimensions chunk (pHYs)
- Non-International Text Chunk Data (tEXt and zTXt)
- Time chunk (tIME)
- An unknown PNG data chunk
Enums§
- Suggested background color chunk (bKGD)
- A chunk within a PNG file.
- Standard PNG color types.
- Alpha Palette Chunk Data (tRNS)