TiffImages.jl
Pure-Julia TIFF reader and writer with a focus on correctness 🧐
TIFF (Tagged Image File Format) is a notoriously flexible file format that is very difficult to support properly so why not just link libtiff
and call it a day? Because Julia developers are greedy. I wanted to design a clean, minimal, and standards-compliant TIFF reader and writer that can have the speed and compliance of libtiff
while adding modern features like streaming, out-of-memory support, and fancy color support. I wanted to design it to be extensible such that packages like OMETIFF.jl
can hook right in with minimal overhead. I wanted to leverage the wonderful Julia Arrays ecosystem to do as much lazily and flexibly as possible.
Features
TiffImages.jl supports:
- The TIFF 6.0 baseline spec
- Thorough testing
- HDR images stored as 32bit or 64bit floats
- BigTIFF standard (TIFFs larger than 4 GB)
- Memory-mapped and lazy loading/writing
- Arbitrary bit depths (e.g. 12 or 14 bit cameras)
- Common compression algorithms like LZW and Packbits
Usage
Check out the examples to see how to use TiffImages.jl