Comprehensive TIFF I/O with Full Support for 'ImageJ' TIFF Files

image-manipulation, imagej, peer-reviewed, r, r-package, rstats, tiff-files, tiff-images



Travis-CI Build Status AppVeyor Build Status codecov

CRAN_Status_Badge RStudio CRAN downloads RStudio CRAN monthly downloads Rdocumentation

Project Status: Active – The project has reached a stable, usable state and is being actively developed. lifecycle



This is a general purpose TIFF I/O utility for R. The tiff package already exists for this purpose but ijtiff adds some functionality and overcomes some bugs therein.

  • ijtiff can write TIFF files whose pixel values are real (floating-point) numbers; tiff cannot.
  • ijtiff can read and write text images; tiff cannot.
  • tiff struggles to interpret channel information and gives cryptic errors when reading TIFF files written by the ImageJ software; ijtiff works smoothly with these images.

To learn about ijtiff and how to use it, visit the package website at



ijtiff requires you to have the libtiff C library installed. To install libtiff:

  • On Debian Linux, try sudo apt-get install libtiff5-dev, or if that fails, try
    sudo apt-get install libtiff4-dev.
  • On Fedora Linux, try sudo yum install libtiff5-dev, or if that doesn’t work, try
    sudo yum install libtiff4-dev.
  • On Mac, you need Homebrew. Then in the terminal, run brew install libtiff.
  • On Windows, no setup is required 😄.

Installing the release version of the ijtiff R package

You can install ijtiff from CRAN (recommended) with:


Installing the development version of the ijtiff R package

You can install the development version from GitHub with:



This package uses a lot of code from the original tiff package by Simon Urbanek.

Advice for Package Authors

If you’re authoring a package which is to depend on ijtiff and you’re using AppVeyor, be sure to force AppVeyor to use 64-bit architecture. This avoids some peculiarities of 32-bit AppVeyor which cause ijtiff installations to fail. You can see how to do this in the appveyor.yml file in this repository.


Contributions to this package are welcome. The preferred method of contribution is through a github pull request. Feel free to contact me by creating an issue. Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.