ImageGear for C and C++ on Windows v19.10 - Updated
EXIF-TIFF Metadata Structure
User Guide > File Formats and Compressions > File Formats > Metadata Structures > EXIF-TIFF Metadata Structure
Brief information on EXIF-TIFF metadata levels is provided in the set of tables below:

EXIF-TIFF Level

The EXIF-TIFF metadata structure is similar to the TIFF metadata structure. However, EXIF-TIFF allows Exif subIFD tags, GPS subIFD tags and thumbnail IFD tags to be parsed and passed together with main IFD.

Name Id Type Value Type Value Value Length Read Only
"EXIF" IG_FORMAT_EXIF_TIFF LEVEL_START 0 NULL 0 TRUE
"TIF_HEADER" 59936 VALUE_ITEM UINT16 0x4949 or 0x4D4D 1 TRUE
IFD 0 level ( if present)
Thumbnail IFD level ( if present)
"EXIF" IG_FORMAT_EXIF_TIFF LEVEL_END 0 NULL 0 TRUE

All items between items with Name "EXIF" and Id IG_FORMAT_EXIF_TIFF (Type LEVEL_START and LEVEL_END) are interpreted as EXIF data. If during sending data from application level to filter level the first item is omitted the data will not be interpreted and saved.

See Exif subIFD tags below for the list of Exif subIFD tag names and Ids.

IFD0 Level

Name Id Type Value Type Value Value Length Read Only
"IFD" 0 LEVEL_START 0 NULL 0 TRUE
Exif subIFD, GPS info subIFD and tags levels mixed in any way
"IFD" 0 LEVEL_END 0 NULL 0 TRUE

Exif subIFD Level

Name Id Type Value Type Value Value Length Read Only
"IFD" 34665 LEVEL_START 0 NULL 0 TRUE
Interoperability info subIFD and tags levels mixed in any way
"IFD" 34665 LEVEL_END 0 NULL 0 TRUE

The number 34665 is the Exif subIFD pointer tag (see below)

IFD1 (Thumbnail IFD), GPS Info subIFD and Interoperability Info subIFD Levels

Name Id Type Value Type Value Value Length Read Only
"IFD" <IFDId> LEVEL_START 0 NULL 0 TRUE
Tag 1
...
Tag n
"IFD" <IFDId> LEVEL_END 0 NULL 0 TRUE

The value of <IFDId> is 1 for IFD1 or the subIFD pointer tag identifier for GPS (34853)(see GPS subIFD tags) or Interoperability (40965) subIFD (see Interoperability subIFD tags, below).

Tag Levels

For tag metadata structure see TIFF Non-Image Data Structure.

Description of Tags Used in EXIF

There are the following types of EXIF tags described in this section:

For IFD0 and Thumbnail IFD tags see TIFF Non-Image Data Structure.

Exif subIFD Tags

The following table lists the most frequently used Exif tags. See enumIGEXIFTagIDs for a complete list of tags. For tags not listed in this table, to find out whether a tag is read only or not, see Non-Image Data Processing.

Item Name Item Id Read Only
"ExposureTime" 33434 FALSE
"Fnumber" 33437 FALSE
"ExposureProgram" 34850 FALSE
"SpectralSensitivity" 34852 FALSE
"ISOSpeedRatings" 34855 FALSE
"OECF" 34856 FALSE
"ExifVersion" 36864 FALSE
"DateTimeOriginal" 36867 FALSE
"DateTimeDigitized" 36868 FALSE
"ComponentsConfiguration" 37121 FALSE
"CompressedBitsPerPixel" 37122 FALSE
"ShutterSpeedValue" 37377 FALSE
"ApertureValue" 37378 FALSE
"BrightnessValue" 37379 FALSE
"ExposureBiasValue" 37380 FALSE
"MaxApertureValue" 37381 FALSE
"SubjectDistance" 37382 FALSE
"MeteringMode" 37383 FALSE
"LightSource" 37384 FALSE
"Flash" 37385 FALSE
"FocalLength" 37386 FALSE
"SubjectArea" 37396 FALSE
"MakerNote" 37500 FALSE
"UserComment" 37510 FALSE
"SubSecTime" 37520 FALSE
"SubSecTimeOriginal" 37521 FALSE
"SubSecTimeDigitized" 37522 FALSE
"FlashPixVersion" 40960 FALSE
"ColorSpace" 40961 FALSE
"PixelXDimension" 40962 TRUE
"PixelYDimension" 40963 TRUE
"RelatedSoundFile" 40964 FALSE
"InteroperabilityIFDPointer" 40965 TRUE
"FlashEnergy" 41483 FALSE
"SpatialFrequencyResponse" 41484 FALSE
"FocalPlaneXResolution" 41486 FALSE
"FocalPlaneYResolution" 41487 FALSE
"FocalPlaneResolutionUnit" 41488 FALSE
"SubjectLocation" 41492 FALSE
"ExposureIndex" 41493 FALSE
"SensingMethod" 41495 FALSE
"FileSource" 41728 FALSE
"SceneType" 41729 FALSE
"CFAPattern" 41730 FALSE
"CustomRendered" 41985 FALSE
"ExposureMode" 41986 FALSE
"WhiteBalance" 41987 FALSE
"DigitalZoomRatio" 41988 FALSE
"FocalLengthIn35mmFilm" 41989 FALSE
"SceneCaptureType" 41990 FALSE
"GainControl" 41991 FALSE
"Contrast" 41992 FALSE
"Saturation" 41993 FALSE
"Sharpness" 41994 FALSE
"DeviceSettingDescription" 41995 FALSE
"SubjectDistanceRange" 41996 FALSE
"ImageUniqueID" 42016 FALSE

GPS subIFD Tags

See enumIGEXIFGPSTagIDs for the complete list of EXIF GPS tags. All of EXIF GPS tags are writable.

Interoperability subIFD Tags

See enumIGEXIFInterOperTagIDs for the complete list of EXIF Interoperability tags. All of EXIF Interoperability tags are writable.

Callback Required for Writing EXIF Metadata Items

Value of these tags can be changed using LPAFT_IG_METAD_ITEM_SET_CB callback only.

Item Name Item Id
"TIF_HEADER" 59936
IFD0 tags
"PlanarConfiguration" 284
"YCbCrSubSampling" 530
"RowsPerStrip" 278
"YCbCrPositioning" 531
"XResolution" 282
"YResolution" 283
"ResolutionUnit" 296
Exif subIFD
"ExifVersion" 36864
"FlashPixVersion" 40960
"ColorSpace" 40961
Thumbnail IFD
"ImageWidth" 256
"ImageLength" 257
"PlanarConfiguration" 284
"YCbCrSubSampling" 530
"RowsPerStrip" 278
"YCbCrPositioning" 531
"XResolution" 282
"YResolution" 283
"ResolutionUnit" 296

The rest of metadata item values can be written using LPAFT_IG_METAD_ITEM_ADD_CB callback only.