ImageGear .NET v25.1 - Updated
JPEG Metadata Structure
User Guide > File Formats and Compressions > File Formats > Metadata Structures > JPEG Metadata Structure

JPEG metadata structure is framed in several levels:

JPEG Level

Name Id Type Value Type Value Value Length Ignored on save
"JPEG-JFIF" ImGearFormats.JPG Tree        
JPEG marker segment levels

JPEG Marker Segment Levels

The following JPEG marker segments metadata are supported:

Segment level markers are described in the tables:

Frame Marker Segment Level

Name Id Type Value Type Value Value Length Ignored on save
"Precision" ImGearJPEGTagIDs. FRAME_PRECISION Leaf UINT8   1 TRUE
"Lines" ImGearJPEGTagIDs. FRAME_LINES Leaf UINT16   1 TRUE
"SamplesPerLine" ImGearJPEGTagIDs. FRAME_SAMPLES_PER_LINE Leaf UINT16   1 TRUE
"NumberOfComponents" ImGearJPEGTagIDs. FRAME_NUMBER_OF_COMPONENTS Leaf UINT8 <n> 1 TRUE
Frame component level 1 ImGearJPEGTagIDs. FRAME_COMPONENT_SPEC Tree        
...
Frame component level <n> ImGearJPEGTagIDs. FRAME_COMPONENT_SPEC Tree        

Frame Component Level

Name Id Type Value Type Value Value Length Ignored on save
"Identifier" ImGearJPEGTagIDs. FRAME_COMPONENT_ID Leaf UINT <Component No.> 1 TRUE
HVSamplingFactors ImGearJPEGTagIDs. FRAME_COMPONENT_HV_SAMPLING Leaf UINT   1 TRUE
"QuantizationNumber" ImGearJPEGTagIDs. FRAME_COMPONENT_QUANT_SELECTOR Leaf UINT   1 TRUE
<Component No.> is frame component identifier of appropriate component.

Scan Marker Segment Level

Name Id Type Value Type Value Value Length Ignored on save
"ComponentNumber" ImGearJPEGTagIDs. SCAN_COMPONENT_NUMBER Leaf UINT8 <n> 1 TRUE
Scan component level 1 ImGearJPEGTagIDs.SCAN_COMPONENT Tree        
 
Scan component level <n> ImGearJPEGTagIDs.SCAN_COMPONENT Tree        
"SpectralStart" ImGearJPEGTagIDs.SCAN_SP_START Leaf UINT8   1 TRUE
"SpectralEnd" ImGearJPEGTagIDs.SCAN_SP_END Leaf UINT8     TRUE
"AH_AL" ImGearJPEGTagIDs.SCAN_AH_AL Leaf UINT8     TRUE

Scan Component Level

Name Id Type Value Type Value Value Length Ignored on save
"Selector" ImGearJPEGTagIDs. SCAN_SELECTOR Leaf UINT8   1 TRUE
"DC_AC" ImGearJPEGTagIDs. SCAN_DC_AC Leaf UINT8   1 TRUE

Define-Quantization-Table Marker Segment Level

Name Id Type Value Type Value Value Length Ignored on save
"QuantizationTable" ImGearJPEGTagIDs.QUANT_TABLE Tree        
 
"QuantizationTable" ImGearJPEGTagIDs.QUANT_TABLE Tree        

Define-Quantization-Table Table Level

Name Id Type Value Type Value Value Length Ignored on save
"Descriptor" ImGearJPEGTagIDs. QUANT_TABLE_DESCRIPTOR Leaf UINT8     TRUE
"Elements" ImGearJPEGTagIDs. QUANT_TABLE_ELEMENTS Leaf UINT8 or UINT16     TRUE

Define-Huffman-Tables Marker Segment Level

Name Id Type Value Type Value Value Length Ignored on save
"HuffmanTable" ImGearJPEGTagIDs.HUFFMAN_TABLE Tree        
 
"HuffmanTable" ImGearJPEGTagIDs.HUFFMAN_TABLE Tree        

Define-Huffman-Table Table Level

Name Id Type Value Type Value Value Length Ignored on save
"Descriptor" ImGearJPEGTagIDs. HUFFMAN_TABLE_DESCRIPTOR Leaf UINT8     TRUE
"Lengths" ImGearJPEGTagIDs. HUFFMAN_TABLE_LENGTH Leaf UINT8     TRUE
"Values" ImGearJPEGTagIDs. HUFFMAN_TABLE_VALUES Leaf UINT8     TRUE
 
"Values" ImGearJPEGTagIDs. HUFFMAN_TABLE_VALUES Leaf UINT8     TRUE

Comment Marker Segment Level

Name Id Type Value Type Value Value Length Ignored on save
"Comment" ImGearJPEGTagIDs. COMMENT Leaf STRING   <ValueSize> FALSE

Application Marker Segment Level

There are several application marker segments whose data structure is well known. These segments are parsed and their data are passed in special format.

These marker segments are:

JFIF APP0 Segment

Name Id Type Value Type Value Value Length Ignored on save
"JFIF_HEADER" ImGearJPEGTagIDs. JFIF_ID Leaf STRING JFIF 5 TRUE
"Version" ImGearJPEGTagIDs. JFIF_VERSION Leaf UINT16   1 FALSE
"ResolutionUnits" ImGearJPEGTagIDs. JFIF_UNITS Leaf UINT8   1 FALSE
"ResolutionX" ImGearJPEGTagIDs. JFIF_X_RES Leaf UINT16   1 FALSE
"ResolutionY" ImGearJPEGTagIDs. JFIF_Y_RES Leaf UINT16   1 FALSE
"ThumbnailWidth"18 ImGearJPEGTagIDs. JFIF_THUMB_WIDTH Leaf UINT8   1 TRUE
"ThumbnailHeight"19 ImGearJPEGTagIDs. JFIF_THUMB_HEIGHT Leaf UINT8   1 TRUE

Photoshop Image Resource APP13 Marker Segment

Name Id Type Value Type Value Value Length Ignored on save
"PHOTOSHOP_HEADER" ImGearJPEGTagIDs. PHOTOSHOP_HEADER Leaf STRING "Photoshop 3.0" 14 FALSE
Photoshop Image Resource level 1
...
Photoshop Image Resource level n
For "Photoshop Image Resource" metadata structure see Photoshop Image Resource Metadata Structure Tables.

Other Application Marker Segment Levels

Name Id Type Value Type Value Value Length Ignored on save
"DATA" ImGearJPEGTagIDs. BINARY_DATA Leaf RAW_DATA   <ValueSize> FALSE