Module png_pong::chunk

source ·
Expand description

Low-level PNG API

A PNG file consists of a sequence of Chunks 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 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)
  • 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)
  • Required ImageEnd “IEND”

Structs§

Enums§