What Is TIFF?
TIFF stands for Tagged Image File Format, a flexible raster image format developed by Aldus Corporation (later acquired by Adobe) in 1986. The TIFF 6.0 specification (1992) is the current version, maintained by Adobe. TIFF was designed to be a universal format for desktop publishing and professional photography, capable of storing images in any colour space, any bit depth, with or without compression, and with extensive metadata support.
The word "Tagged" refers to the format's architecture: TIFF files store image data and metadata as a collection of tagged fields (tags), giving the format remarkable flexibility. Different images in the same TIFF can use different compression schemes, colour spaces, and resolutions.
TIFF remains the standard archival format for document scanning, professional photography output, prepress and print production, medical imaging, geographic information systems (GIS/satellite imagery), and museum digitisation.
Binary Structure: IFDs and Tags
A TIFF file consists of:
-
File Header (8 bytes):
- Bytes 0-1: Byte order (
II= little-endian Intel,MM= big-endian Motorola) - Bytes 2-3: Magic number (
42in the appropriate byte order) - Bytes 4-7: Offset to the first Image File Directory (IFD)
- Bytes 0-1: Byte order (
-
Image File Directories (IFDs): Each IFD represents one image in the file. An IFD contains:
- Entry count (2 bytes)
- Array of 12-byte directory entries, each describing one tag
- Offset to next IFD (0 = no more images)
-
Directory Entry (12 bytes):
- Tag number (2 bytes) β identifies what this entry describes
- Field type (2 bytes) β BYTE, ASCII, SHORT, LONG, RATIONAL, FLOAT, DOUBLE, etc.
- Value count (4 bytes) β number of values in the field
- Value offset (4 bytes) β actual value if it fits in 4 bytes; otherwise, offset to value data
-
Image data: Stored separately, referenced by tags (StripOffsets/StripByteCounts for strips, or TileOffsets/TileByteCounts for tiles)
Essential TIFF Tags
| Tag number | Tag name | Description |
|---|---|---|
| 256 | ImageWidth | Width in pixels |
| 257 | ImageLength | Height in pixels |
| 258 | BitsPerSample | Bits per channel (8, 16, 32) |
| 259 | Compression | Compression type code |
| 262 | PhotometricInterpretation | Colour space (1=BlackIsZero, 2=RGB, 5=CMYK, 6=YCbCr) |
| 270 | ImageDescription | Text description |
| 271 | Make | Camera/scanner make |
| 272 | Model | Camera/scanner model |
| 277 | SamplesPerPixel | Channels (1=grayscale, 3=RGB, 4=CMYK or RGBA) |
| 278 | RowsPerStrip | Rows per data strip |
| 279 | StripByteCounts | Bytes in each strip |
| 282 | XResolution | Horizontal DPI (as RATIONAL) |
| 283 | YResolution | Vertical DPI |
| 296 | ResolutionUnit | 1=no unit, 2=inch, 3=cm |
| 305 | Software | Software that created the file |
| 306 | DateTime | File creation date/time |
| 320 | ColorMap | Colour table for palette images |
| 338 | ExtraSamples | Describes additional channels (alpha: 1=premultiplied, 2=unassociated) |
| 529 | YCbCrCoefficients | Luma coefficients for YCbCr |
| 700 | XMP | Embedded XMP metadata packet |
| 34675 | ICCProfile | Embedded ICC colour profile |
| 34736/34737 | GeoTIFF tags | Geographic coordinate system (GeoTIFF extension) |
Compression Options
TIFF supports multiple compression methods, selectable per image:
| Compression code | Method | Notes |
|---|---|---|
| 1 | None (Uncompressed) | Maximum compatibility; largest files |
| 2 | CCITT Modified Huffman | 1-bit B&W only (fax standard) |
| 5 | LZW | Lossless; excellent for line art, graphics with flat areas |
| 6 | JPEG (old-style) | Lossy; deprecated; avoid |
| 7 | JPEG (new-style) | Lossy; small files; some quality loss |
| 8 | Deflate (Adobe) | Lossless zlib/DEFLATE; good for photos |
| 32773 | PackBits | Simple run-length encoding; fast |
| 34925 | LZMA | Better compression than LZW; less universal |
LZW is the standard lossless choice for most TIFF files in professional workflows. Deflate (Adobe variant) provides similar or slightly better compression. None is used when maximum editing speed is needed or for archival masters.
Colour Spaces and Bit Depth
TIFF is the only common image format that supports nearly every professional colour space:
- Grayscale (1 channel, 1/8/16/32 bit)
- RGB (3 channels, 8/16/32 bit per channel) β standard for photography
- CMYK (4 channels, 8/16 bit) β prepress and print standard
- YCbCr (3 channels) β for JPEG-compressed TIFF
- CIELab (3 channels) β device-independent colour
- Transparency/Alpha (extra channel, via ExtraSamples tag)
- HDR/floating-point (32-bit float per channel) β used in visual effects and scientific imaging
16-bit per channel TIFF is the professional standard for photography and scanning: it stores 65,536 levels per channel (vs. 256 in 8-bit), preserving subtle gradients and providing substantial headroom for editing without posterisation.
Multi-Page TIFF
TIFF supports multiple images in a single file by chaining IFDs (each IFD's "next IFD offset" points to the next):
- Document scanning: Multi-page TIFFs store scanned documents as one file (page 1 = IFD 1, page 2 = IFD 2, etc.)
- Image sequences: Some scientific imaging applications store time series as multi-page TIFFs
- Fax: Multi-page Group 4 TIFF is the standard fax format
Tools like ImageMagick (convert page1.tif page2.tif multipage.tif) and Pillow (Python) can create, read, and split multi-page TIFFs.
GeoTIFF
GeoTIFF is a TIFF extension that embeds geographic metadata (coordinate system, projection, bounding box) directly in TIFF tags (34736, 34737). This allows satellite imagery, aerial photographs, and maps to carry their own georeferencing information, enabling direct import into GIS software (QGIS, ArcGIS, GDAL).
GeoTIFF is the standard format for:
- NASA/ESA satellite imagery
- USGS topographic data
- Sentinel-2, Landsat-8/9 imagery
- Digital elevation models (DEM)
BigTIFF
Standard TIFF uses 32-bit file offsets, limiting files to 4 GB. BigTIFF (extension .btf or still .tif) uses 64-bit offsets, removing this limit. BigTIFF is essential for:
- Large satellite imagery tiles
- Very high resolution scanning (A0 at 1200 DPI produces files well over 4 GB)
- Scientific imaging datasets
GDAL, LibTIFF, ImageMagick, and Pillow support BigTIFF. Photoshop does not natively support BigTIFF (it has its own large format: PSB).
TIFF vs. PNG vs. PSD vs. RAW
| Feature | TIFF | PNG | PSD | RAW |
|---|---|---|---|---|
| Lossless | Yes | Yes | Yes | Yes |
| Max bit depth | 32-bit float | 16-bit int | 32-bit float | Varies (12-16 bit) |
| CMYK support | Yes | No | Yes | No |
| Layers | No (standard) | No | Yes | No |
| Multi-page | Yes | No | No | No |
| GeoTIFF | Yes | No | No | No |
| ICC profiles | Yes | Yes | Yes | Embedded |
| File size | Large | Medium | Large | Varies |
| Universal support | High | Highest | Low (Adobe only) | Low (camera-specific) |
| Print/prepress | Yes (CMYK) | Limited | Yes | No |
Converting TIFF
TIFF β JPEG: ImageMagick: convert input.tif -quality 90 output.jpg. Photoshop, GIMP, and most viewers. Note: 16-bit TIFF β JPEG loses bit depth.
TIFF β PNG: Lossless: convert input.tif output.png. PNG doesn't support CMYK; convert to RGB first.
TIFF β PDF: Most document management systems accept TIFF. ImageMagick: convert *.tif multipage.pdf. PDF/A archival format can embed TIFF.
Multi-page TIFF β individual files: convert multipage.tif page-%d.tif (ImageMagick) or Python Pillow's ImageSequence.Iterator.
TIFF β PSD: Photoshop opens TIFF natively; Save As β Photoshop to convert.
RAW β TIFF: Darktable, Lightroom, or dcraw export to 16-bit TIFF for full-quality editing in other applications.
Summary
TIFF is the universal archival and production format for professional imaging β the format that "just works" when other formats' limitations become apparent. Its tagged architecture makes it infinitely extensible; its support for CMYK, 16-bit, multi-page, GeoTIFF, and lossless compression makes it indispensable in print, scanning, satellite imagery, and museum digitisation. For web use, PNG and WebP are more practical. For photography, JPEG suffices for delivery. But for archiving original high-quality scans and as the intermediate format for professional image processing, nothing has displaced TIFF in 35+ years.