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:
- Exif subIFD tags
- GPS subIFD tags
- Interoperability subIFD tags
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.