Brief information on PNG metadata levels is provided in the set of tables below:
PNG Metadata Level
All items between items with Name "PNG" and Id IG_FORMAT_PNG (Type LEVEL_START and LEVEL_END) are interpreted as PNG data. If during sending data from application level to filter level the first item is omitted the data will not be interpreted and saved.
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "PNG" |
IG_FORMAT_PNG |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| PNG chunks levels |
| "PNG" |
IG_FORMAT_PNG |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
PNG Chunks Levels
The following PNG non-image chunk levels are supported by ImageGear:
PNG Header Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "IHDR" |
0x49484452 |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "Width" |
0x49484452 |
VALUE_ITEM |
UINT32 |
|
1 |
TRUE |
| "Height" |
0x49484452 |
VALUE_ITEM |
UINT32 |
|
1 |
TRUE |
| "BitDepth" |
0x49484452 |
VALUE_ITEM |
UINT8 |
|
1 |
TRUE |
| "ColorType" |
0x49484452 |
VALUE_ITEM |
UINT8 |
|
1 |
TRUE |
| "CompressionType" |
0x49484452 |
VALUE_ITEM |
UINT8 |
|
1 |
TRUE |
| "FilterType" |
0x49484452 |
VALUE_ITEM |
UINT8 |
|
1 |
TRUE |
| "InterlaceType" |
0x49484452 |
VALUE_ITEM |
UINT8 |
|
1 |
TRUE |
| "IHDR" |
0x49484452 |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
Physical Dimension Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "pHYs" |
0x70485973 |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "XAxis" |
0x70485973 |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
| "YAxis" |
0x70485973 |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
| "UnitSpecifier" |
0x70485973 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "pHYs" |
0x70485973 |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
Transparency Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "tRNS" |
0x74524e53 |
VALUE_ITEM |
UINT8 or UINT16 |
|
Variable |
FALSE |
Gamma Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "gAMA" |
0x67414d41 |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
Primary Chromaticities Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "cHRM" |
0x6348524d |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "WhitePoint" |
0x6348524d |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "x" |
0x6348524d |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
| "y" |
0x6348524d |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
| "WhitePoint" |
0x6348524d |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
| "Red" |
0x6348524d |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "x" |
0x6348524d |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
| "y" |
0x6348524d |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
| "Red" |
0x6348524d |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
| "Green" |
0x6348524d |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "x" |
0x6348524d |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
| "y" |
0x6348524d |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
| "Green" |
0x6348524d |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
| "Blue" |
0x6348524d |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "x" |
0x6348524d |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
| "y" |
0x6348524d |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
| "Blue" |
0x6348524d |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
| "cHRM" |
0x6348524d |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
sRGB Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "sRGB" |
0x73524742 |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
ICC profile Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "iCCP" |
0x70485973 |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "ProfileName" |
0x70485973 |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| "ProfileData" |
0x70485973 |
VALUE_ITEM |
RAW_DATA |
|
Variable |
FALSE |
| "iCCP" |
0x70485973 |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
Background Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "bKGD" |
0x624b4744 |
VALUE_ITEM |
UINT8 or UINT16 |
|
Variable |
FALSE |
Significant Bits Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "sBIT" |
0x73424954 |
VALUE_ITEM |
UINT8 |
|
Variable |
FALSE |
Suggested Palette Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "sPLT" |
0x73504c54 |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "PaletteName" |
0x73504c54 |
VALUE_ITEM |
STRING |
|
Variable |
TRUE |
| "SampleDepth" |
0x73504c54 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "PaletteEntryCount" |
0x73504c54 |
VALUE_ITEM |
UINT16 |
<N> |
1 |
FALSE |
| Palette entry level 0 |
| ... |
| Palette entry level n |
| "sPLT" |
0x70485973 |
LEVEL_END |
0 |
NULL |
1 |
FALSE |
Palette Entry Level
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "PaletteEntry" |
<Entry No.> |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "Red" |
<Entry No.> |
VALUE_ITEM |
UINT8 or UINT16 |
|
1 |
FALSE |
| "Green" |
<Entry No.> |
VALUE_ITEM |
UINT8 or UINT16 |
|
1 |
FALSE |
| "Blue" |
<Entry No.> |
VALUE_ITEM |
UINT8 or UINT16 |
|
1 |
FALSE |
| "Alpha" |
<Entry No.> |
VALUE_ITEM |
UINT8 or UINT16 |
|
1 |
FALSE |
| "Frequency" |
<Entry No.> |
VALUE_ITEM |
UINT16 |
|
1 |
FALSE |
| "PaletteEntry" |
<Entry No.> |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
Palette Histogram Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "hIST" |
0x68495354 |
VALUE_ITEM |
UINT16 |
|
Variable |
FALSE |
Modified Time Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "tIME" |
0x74494d45 |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "Year" |
0x74494d45 |
VALUE_ITEM |
UINT16 |
|
1 |
FALSE |
| "Month" |
0x74494d45 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "Day" |
0x74494d45 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "Hour" |
0x74494d45 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "Minute" |
0x74494d45 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "Second" |
0x74494d45 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "tIME" |
0x74494d45 |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
Text Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "tEXt" |
0x74455874 |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "Keyword" |
0x74455874 |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| "Text" |
0x74455874 |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| "tEXt" |
0x74455874 |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
Compressed Textual Data Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "zTXt" |
0x7a545874 |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "Keyword" |
0x7a545874 |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| "CompressionMethod" |
0x7a545874 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "Text" |
0x7a545874 |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| "zTXt" |
0x7a545874 |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
International Textual Data Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "zTXt" |
0x69545874 |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "Keyword" |
0x69545874 |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| "CompressionFlag" |
0x69545874 |
VALUE_ITEM |
BOOL |
|
|
|
| "CompressionMethod" |
0x69545874 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "LanguageTag" |
0x69545874 |
VALUE_ITEM |
STRING |
|
|
|
| "TranslatedKeyword" |
0x69545874 |
VALUE_ITEM |
RAW_DATA |
|
|
|
| "Text" |
0x69545874 |
VALUE_ITEM |
RAW_DATA |
|
Variable |
FALSE |
| "zTXt" |
0x69545874 |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
Calibration of Pixel Values Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "pCAL" |
0x7043414c |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "CalibrationName" |
0x7043414c |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| "OriginalZero(x0)" |
0x7043414c |
VALUE_ITEM |
INT32 |
|
1 |
FALSE |
| "OriginalMax(x1)" |
0x7043414c |
VALUE_ITEM |
INT32 |
|
1 |
FALSE |
| "EquationType" |
0x7043414c |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "NumberOfParameters" |
0x7043414c |
VALUE_ITEM |
UINT8 |
<N> |
Variable |
FALSE |
| "UnitName" |
0x7043414c |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| "CalibrationParameter" |
0 |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| ... |
| "CalibrationParameter" |
<N> - 1 |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| "pCAL" |
0x7043414c |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
Physical Scale Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "sCAL" |
0x7343414c |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "UnitSpecifier" |
0x7343414c |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "PixelWidth" |
0x7343414c |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| "PixelHeigt" |
0x7343414c |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| "sCAL" |
0x7343414c |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
GIF Application Extension Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "gIFx" |
0x67494678 |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "ApplicationIdentifier" |
0x67494678 |
VALUE_ITEM |
STRING |
|
Variable |
FALSE |
| "AuthenticationCode" |
0x67494678 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "ApplicationData" |
0x67494678 |
VALUE_ITEM |
RAW_DATA |
|
Variable |
FALSE |
| "gIFx" |
0x67494678 |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
GIF Graphic Control Extension Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "gIFg" |
0x67494674 |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "DisposalMethod" |
0x67494674 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "UserInputFlag" |
0x67494674 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "DelayTime" |
0x67494674 |
VALUE_ITEM |
UINT16 |
|
1 |
FALSE |
| "gIFg" |
0x67494674 |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
Image Offset Chunk Metadata
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| "oFFs" |
0x6f464673 |
LEVEL_START |
0 |
NULL |
0 |
TRUE |
| "XPosition" |
0x6f464673 |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
| "YPosition" |
0x6f464673 |
VALUE_ITEM |
UINT32 |
|
1 |
FALSE |
| "UnitSpecifier" |
0x6f464673 |
VALUE_ITEM |
UINT8 |
|
1 |
FALSE |
| "oFFs" |
0x6f464673 |
LEVEL_END |
0 |
NULL |
0 |
TRUE |
The Rest Chunk Metadata
The rest chunk data are passed as raw data
| Name |
Id |
Type |
Value Type |
Value |
Value Length |
Read Only |
| <Chunk Name> |
<Chunk ID> |
VALUE_ITEM |
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.
Callback Required for Writing PNG Metadata Items
Value of these metadata items can be changed using LPAFT_IG_METAD_ITEM_SET_CB callback only:
| Item Name |
Item Id |
| Physical dimension chunk metadata |
| "XAxis" |
0x70485973 |
| "YAxis" |
0x70485973 |
| "UnitSpecifier" |
0x70485973 |
The rest of the PNG metadata items can be written using LPAFT_IG_METAD_ITEM_ADD_CB callback only.
PNG Metadata ID Constants
Please see enumIGPNGTagIDs for the complete list of PNG Metadata Item Id constants.