Main Content


Read and write blocked image data as single TIFF file

Since R2021a


The TIFF object is an adapter that reads and writes 2-D blocked image data as a single TIFF file.

When writing to disk, the TIFF format requires block sizes to be a multiple of 16. If the blocked image has any additional metadata in the UserData property, then the TIFF object writes the data to a separate MAT-file with the same file name.

The object supports lossy and lossless compression. By default, the object uses Lempel-Ziv-Welch lossless compression. To use a different compression scheme, create the object and then change the compression scheme using the Compression property. You can also use this property to turn off compression. For example, to use JPEG-based lossy compression, use this code.

adapter = images.blocked.TIFF;
adapter.Compression = JPEG;

The table lists the support that the TIFF object has for various blockedImage capabilities.

Data types

This object supports 2-D images only:

  • Binary images of size m-by-n with data type logical

    Grayscale images of size m-by-n with data type uint8, int16, uint16, int32, uint32, single, or double

  • Truecolor (RGB) images of size m-by-n-by-3 with data type uint8, uint16, uint32, single, or double

Multiple resolution levelsYes
Process blocks in parallel using the apply functionNo
Resume block processing using the apply functionNo




adapter = images.blocked.TIFF creates a TIFF object that reads and writes blocked image data as a single TIFF file.


expand all

TIFF compression scheme, specified as one of the following.

Compression SchemeDescription
"LZW"Lempel-Ziv-Welch lossless compression
"PackBits"PackBits lossless compression
"Deflate"Adobe DEFLATE lossless compression
"JPEG"JPEG-based lossy compression
"None"No compression

Data Types: string

Preferred file extension, specified as a string scalar or character vector.

Data Types: char | string


collapse all

Create a blocked image.

bim = blockedImage('tumor_091R.tif');

Create two separate images.

bim.BlockSize = [512 512 3];
bo1 = apply(bim, @(bs)im2gray(bs.Data));
bo3 = apply(bim, @(bs)im2gray(bs.Data), "Level", 3);

Create a single multiresolution TIFF file from the two images. You specify additional resolution levels using the "LevelImages" parameter.

wa = images.blocked.TIFF(); % Specify the TIFF adapter
wa.Compression = Tiff.Compression.JPEG; % Specify compression in the adapter
write(bo1, "tumor_091RGray.tif", "LevelImages", bo3, "Adapter", wa);

Version History

Introduced in R2021a