ImageGear .NET - Updated
TIFF Metadata Structure
User Guide > File Formats and Compressions > File Formats > Metadata Structures > TIFF Metadata Structure

As with all multipage image formats, ImageGear .NET uses separate metadata trees for TIFF document-level metadata and TIFF page-level metadata:

TIFF page level metadata corresponds to a TIFF IFD.

This section provides information about the following:

Tags

Most of TIFF tags are passed through metadata callback as:

Name Id Type Value Type Value Value Length Ignored on save
<TagName> <TagId> VALUE_ITEM <ValueType> <TagValue> <TagCount> <R.o.>

The valid values of <TagName>, <TagId> and "Read Only" attributes are available in See Description of TIFF tags (ImGearTIFTagIDs). Table.

It is possible to use tag identifier and value of nonstandard tag (user defined tag).

The <TagCount> is real tag count value that is read/written in file.

The <ValueType> value is the metadata type constant that matches TIFF tag type as described in the table below:

TIFF tag type Metadata type (ImGearNativeDataTypes)
BYTE UINT8
SBYTE INT8
SHORT UINT16
SSHORT INT16
LONG UINT32
SLONG INT32
RATIONAL RATIONAL_UINT32
SRATIONAL RATIONAL_INT32
FLOAT FLOAT
DOUBLE DOUBLE
ASCII STRING
UNDEFINED AM_TID_RAW_DATA

Description of TIFF tags (ImGearTIFTagIDs)

Item Name Item Id Ignored on save
"NewSubfileType" 254 TRUE
"SubfileType" 255 TRUE
"ImageWidth" 256 TRUE
"ImageLength" 257 TRUE
"BitsPerSample" 258 TRUE
"Compression" 259 TRUE
"PhotometricInterpretation" 262 TRUE
"Threshholding" 263 FALSE
"CellWidth" 264 TRUE
"CellLength" 265 TRUE
"FillOrder" 266 FALSE
"DocumentName" 269 FALSE
"ImageDescription" 270 FALSE
"Make" 271 FALSE
"Model" 272 FALSE
"StripOffsets" 273 TRUE
"Orientation" 274 FALSE
"SamplesPerPixel" 277 TRUE
"RowsPerStrip" 278 TRUE
"StripByteCounts" 279 TRUE
"MinSampleValue" 280 FALSE
"MaxSampleValue" 281 FALSE
"XResolution" 282 FALSE
"YResolution" 283 FALSE
"PlanarConfiguration" 284 TRUE
"PageName" 285 FALSE
"XPosition" 286 FALSE
"YPosition" 287 FALSE
"FreeOffsets" 288 TRUE
"FreeByteCounts" 289 TRUE
"GrayResponseUnit" 290 FALSE
"GrayResponseCurve" 291 FALSE
"T4Options" 292 TRUE
"T6Options" 293 TRUE
"ResolutionUnit" 296 FALSE
"PageNumber" 297 TRUE
"TransferFunction" 301 FALSE
"Software" 305 FALSE
"DateTime" 306 FALSE
"Artist" 315 FALSE
"HostComputer" 316 FALSE
"Predictor" 317 TRUE
"WhitePoint" 318 FALSE
"PrimaryChromaticities" 319 FALSE
"ColorMap" 320 TRUE
"HalftoneHints" 321 FALSE
"TileWidth" 322 TRUE
"TileLength" 323 TRUE
"TileOffsets" 324 TRUE
"TileByteCounts" 325 TRUE
"InkSet" 332 FALSE
"InkNames" 333 FALSE
"NumberOfInks" 334 FALSE
"DotRange" 336 FALSE
"TargetPrinter" 337 FALSE
"ExtraSamples" 338 TRUE
"SampleFormat" 339 FALSE
"SMinSampleValue" 340 FALSE
"SMaxSampleValue" 341 FALSE
"TransferRange" 342 FALSE
"JPEGTables" 347 TRUE
"JPEGProc" 512 TRUE
"JPEGInterchangeFormat" 513 TRUE
"JPEGInterchangeFormatLngth" 514 TRUE
"JPEGRestartInterval" 515 TRUE
"JPEGLosslessPredictors" 517 TRUE
"JPEGPointTransforms" 518 TRUE
"JPEGQTables" 519 TRUE
"JPEGDCTables" 520 TRUE
"JPEGACTables" 521 TRUE
"YCbCrCoefficients" 529 FALSE
"YCbCrSubSampling" 530 TRUE
"YCbCrPositioning" 531 FALSE
"ReferenceBlackWhite" 532 FALSE
"Copyright" 33432 FALSE
"PhotoshopResources" 34377 FALSE
"ExifIFDPointer" 34665 TRUE
"GPSInfoIFDPointer" 34675 TRUE
Please see file ImGearTIFTagIDs enum for the full list of TIFF Metadata Item Id constants.

TIFF Complex Data Tags

Some tags, whose value is a complex data, can be passed in parsed form as a tree. In this case, a single metadata item is replaced with a tree that uses one of the specialized metadata formats, such as Photoshop (PhotoshopImageResources) or IPTC.

EXIF Metadata

ExifIFDPointer tag in a TIFF file points to an IFD which contains tags defined in the EXIF image file format specification. ImageGear replaces this tag with EXIF metadata tree.

EXIF metadata usually contains nested IFDs as well.

SubIFDs

TIFF images can contain "SubIFDs" - nested sets of tags. A SubIFD usually contains a special version of image, such as a thumbnail, or a Raw image taken from a digital camera sensor.

ImageGear represents SubIFDs as subtrees of the root TIFF IFD.