ImageGear v26.0 - Updated
PNG Metadata Structure
Developer Guide > File Formats and Compressions > File Formats > Metadata Structures > PNG Metadata Structure

PNG format groups non-image data in "Chunks". ImageGear represents simpler chunks by single metadata items, and more complex chunks by subtrees.

There are two main PNG metadata levels in ImageGear:

PNG Metadata Level

Name Id Type Value Type Value Value Length Ignored on save
<PNG chunk names> <PNG chunk ids> <PNG chunk type>

For <PNG chunk names >, <PNG chunk ids> and <PNG Chunk types> see See PNG chunks metadata level. section.

PNG Chunks Metadata Level

The following PNG non-image chunk levels are supported by ImageGear:

PNG Header Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Ignored on save
"IHDR" 0x49484452 Tree

Header Chunk Level

Name Id Type Value Type Value Value Length Ignored on save
"Width" 0x49484452 Leaf UINT32 1 TRUE
"Height" 0x49484452 Leaf UINT32 1 TRUE
"BitDepth" 0x49484452 Leaf UINT8 1 TRUE
"ColorType" 0x49484452 Leaf UINT8 1 TRUE
"CompressionType" 0x49484452 Leaf UINT8 1 TRUE
"FilterType" 0x49484452 Leaf UINT8 1 TRUE
"InterlaceType" 0x49484452 Leaf UINT8 1 TRUE

Physical Dimension Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"pHYs" 0x70485973 Tree

Physical Dimension Chunk Level

Name Id Type Value Type Value Value Length Read Only
"XAxis" 0x70485973 Leaf UINT32 1 FALSE
"YAxis" 0x70485973 Leaf UINT32 1 FALSE
"UnitSpecifier" 0x70485973 Leaf UINT8 1 FALSE

Transparency Chunk Metadata PNG Level

Name ID Type Value Type Value Value Length Read Only
"tRNS" 0x74524e53 Leaf UINT8 or

UINT16
Variable FALSE

Gamma Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"gAMA" 0x67414d41 Leaf UINT32 1 FALSE

Primary Chromaticities Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"cHRM" 0x6348524d Tree

Primary Chromaticities Chunk Level

Name Id Type Value Type Value Value Length Read Only
"WhitePoint" 0x6348524d Tree
"x" 0x6348524d Leaf UINT32 1 FALSE
"y" 0x6348524d Leaf UINT32 1 FALSE
"Red" 0x6348524d Tree
"x" 0x6348524d Leaf UINT32 1 FALSE
"y" 0x6348524d Leaf UINT32 1 FALSE
"Green" 0x6348524d Tree
"x" 0x6348524d Leaf UINT32 1 FALSE
"y" 0x6348524d Leaf UINT32 1 FALSE
"Blue" 0x6348524d Tree
"x" 0x6348524d Leaf UINT32 1 FALSE
"y" 0x6348524d Leaf UINT32 1 FALSE

sRGB Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"sRGB" 0x73524742 Leaf UINT32 1 FALSE

ICC Profile Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"iCCP" 0x70485973 Tree

ICC Profile Chunk Level

Name Id Type Value Type Value Value Length Read Only
"ProfileName" 0x70485973 Leaf STRING Variable FALSE
"ProfileData" 0x70485973 Leaf RAW_DATA Variable FALSE

Background Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"bKGD" 0x624b4744 Leaf UINT8 or UINT16 Variable FALSE

Significant Bits Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"sBIT" 0x73424954 Leaf UINT8 Variable FALSE

Suggested Palette Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"sPLT" 0x73504c54 Tree

Suggested Palette Chunk Level

Name ID Type Value Type Value Value Length Read Only
"PaletteName" 0x73504c54 Leaf STRING Variable TRUE
"SampleDepth" 0x73504c54 Leaf UINT8 1 FALSE
"PaletteEntryCount" 0x73504c54 Leaf UINT16 <N> 1 FALSE
Palette entry level 0 <Entry No.> Tree
...
Palette entry level n <Entry No.> Tree

Palette Entry Level

Name Id Type Value Type Value Value Length Read Only
"Red" <Entry No.> Leaf UINT8 or UINT16 1 FALSE
"Green" <Entry No.> Leaf UINT8 or UINT16 1 FALSE
"Blue" <Entry No.> Leaf UINT8 or UINT16 1 FALSE
"Alpha" <Entry No.> Leaf UINT8 or UINT16 1 FALSE
"Frequency" <Entry No.> Leaf UINT16 1 FALSE

Palette Histogram Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"hIST" 0x68495354 Leaf UINT16 Variable FALSE

Modified Time Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"tIME" 0x74494d45 Tree

Modified Time Chunk Level

Name Id Type Value Type Value Value Length Read Only
"Year" 0x74494d45 Leaf UINT16 1 FALSE
"Month" 0x74494d45 Leaf UINT8 1 FALSE
"Day" 0x74494d45 Leaf UINT8 1 FALSE
"Hour" 0x74494d45 Leaf UINT8 1 FALSE
"Minute" 0x74494d45 Leaf UINT8 1 FALSE
"Second" 0x74494d45 Leaf UINT8 1 FALSE

Text Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"tEXt" 0x74455874 Tree

Text Chunk Level

Name Id Type Value Type Value Value Length Read Only
"Keyword" 0x74455874 Leaf STRING Variable FALSE
"Text" 0x74455874 Leaf STRING Variable FALSE

Compressed Textual Data Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"zTXt" 0x7a545874 Tree

Compressed Textual Data Chunk Level

Name Id Type Value Type Value Value Length Read Only
"Keyword" 0x7a545874 Leaf STRING Variable FALSE
"CompressionMethod" 0x7a545874 Leaf UINT8 1 FALSE
"Text" 0x7a545874 Leaf STRING Variable FALSE

International Textual Data Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"zTXt" 0x69545874 Tree

International Textual Data Chunk Level

Name Id Type Value Type Value Value Length Read Only
"Keyword" 0x69545874 Leaf STRING Variable FALSE
"CompressionFlag" 0x69545874 Leaf BOOL
"CompressionMethod" 0x69545874 Leaf UINT8 1 FALSE
"LanguageTag" 0x69545874 Leaf STRING
"TranslatedKeyword" 0x69545874 Leaf RAW_DATA
"Text" 0x69545874 Leaf RAW_DATA Variable FALSE

Calibration of Pixel Values Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"pCAL" 0x7043414c Tree

Calibration of Pixel Values Chunk Level

Name ID Type Value Type Value Value Length Read Only
"CalibrationName" 0x7043414c Leaf STRING Variable FALSE
"OriginalZero(x0)" 0x7043414c Leaf INT32 1 FALSE
"OriginalMax(x1)" 0x7043414c Leaf INT32 1 FALSE
"EquationType" 0x7043414c Leaf UINT8 1 FALSE
"NumberOfParameters" 0x7043414c Leaf UINT8 <N> Variable FALSE
"UnitName" 0x7043414c Leaf STRING Variable FALSE
"CalibrationParameter" 0 Leaf STRING Variable FALSE
...
"CalibrationParameter" <N> - 1 Leaf STRING Variable FALSE

Physical Scale Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"sCAL" 0x7343414c Tree

Physical Scale Chunk Level

Name Id Type Value Type Value Value Length Read Only
"UnitSpecifier" 0x7343414c Leaf UINT8 1 FALSE
"PixelWidth" 0x7343414c Leaf STRING Variable FALSE
"PixelHeigt" 0x7343414c Leaf STRING Variable FALSE

GIF Application Extension Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"gIFx" 0x67494678 Tree

GIF Application Extension Chunk Level

Name Id Type Value Type Value Value Length Read Only
"ApplicationIdentifier" 0x67494678 Leaf STRING Variable FALSE
"AuthenticationCode" 0x67494678 Leaf UINT8 1 FALSE
"ApplicationData" 0x67494678 Leaf RAW_DATA Variable FALSE

GIF Graphic Control Extension Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"gIFg" 0x67494674 Tree

GIF Graphic Control Extension Chunk Level

Name Id Type Value Type Value Value Length Read Only
"DisposalMethod" 0x67494674 Leaf UINT8 1 FALSE
"UserInputFlag" 0x67494674 Leaf UINT8 1 FALSE
"DelayTime" 0x67494674 Leaf UINT16 1 FALSE

Image Offset Chunk Metadata PNG Level

Name Id Type Value Type Value Value Length Read Only
"oFFs" 0x6f464673 Tree

Image Offset Chunk Level

Name Id Type Value Type Value Value Length Read Only
"XPosition" 0x6f464673 Leaf UINT32 1 FALSE
"YPosition" 0x6f464673 Leaf UINT32 1 FALSE
"UnitSpecifier" 0x6f464673 Leaf UINT8 1 FALSE

The Rest Chunk Metadata

The rest chunk data are passed as raw data.

PNG Level

Name Id Type Value Type Value Value Length Read Only
<Chunk Name> <Chunk ID> Leaf RAW_DATA Variable FALSE

<Chunk Name> is a string representation of the chunk type value.

<Chunk ID> is a binary representation of the chunk type value.

Is this page helpful?
Yes No
Thanks for your feedback.