# Tagged Image File Format

# Tagged Image File Format

TIFF is a flexible and adaptable file format. It can handle multiple images and data in a single file through the inclusion of "tags" in the file header. Tags can indicate the basic geometry of the image, such as its size, or define how the image data is arranged and whether various image compression options are used. For example, TIFF can be used as a container for JPEG and RLE compressed images. The ability to store image data in a lossless format makes TIFF files a useful method for archiving images. Other TIFF file options include multiple layers or pages.
Currently Imaging uses LibTiff C library to load and save TIFFs. It can read and write most types of TIFF files. But it is currently available only in Delphi (uses LibTiffDelphi object files) and it can make your compiled binaries quite big (almost 400 KiB size increase when compiled with TIFF support).

If you don't need TIFF support and want smaller exe instead you can disable it by uncommenting {$DEFINE DONT_LINK_TIFF} line in in ImagingExtras.pas unit.
Native Object Pascal TIFF support is planned for some future Imaging release.

## Tagged Image File Format File Format Support

Format | TImageFormat equivalent | Loading | Saving
--- | --- | --- | ---
8 bit indexed | ifIndex8 | Yes | Yes
24 bit RGB | ifR8G8B8 | Yes | Yes
48 bit RGB | ifR16G16B16 | Yes | Yes
32 bit ARGB | ifA8R8G8B8 | Yes | Yes
64 bit ARGB | ifA16R16G16B16 | Yes | Yes
8 bit grayscale | ifGray8 | Yes | Yes
16 bit grayscale | ifGray16 | Yes | Yes
16 bit grayscale + alpha | ifA8Gray8 | Yes | Yes
32 bit grayscale + alpha | ifA16Gray16 | Yes | Yes
32 bit grayscale | ifGray32 | Yes | Yes
16 bit R FP16 | ifR16F | Yes | Yes
64 bit ARGB FP16 | ifA16R16G16B16F | Yes | Yes
32 bit R FP32 | ifR32F | Yes | Yes
128 bit ARGB FP32 | ifA32B32G32R32F | Yes | Yes
other types | depends on type | Yes/No | No