TIFFDeferStrileArrayWriting

Synopsis

#include <tiffio.h>
int TIFFDeferStrileArrayWriting(TIFF *tif)
int TIFFForceStrileArrayWriting(TIFF *tif)

Description

TIFFDeferStrileArrayWriting() is an advanced writing function that must be used in a particular sequence, and generally together with TIFFForceStrileArrayWriting(), to achieve its intended effect. Their aim is to control when and where the StripOffsets / StripByteCounts or TileOffsets / TileByteCounts arrays are written into the file.

The purpose of this is to generate 'cloud-optimized geotiff' files where the first KB of the file only contain the IFD entries without the potentially large strile arrays. Those are written afterwards.

More precisely, when TIFFWriteCheck() is called, the tag entries for those arrays will be written with type = count = offset = 0 as a temporary value.

Its effect is only valid for the current directory, and before TIFFWriteDirectory() is first called, and will be reset when changing directory.

The typical sequence of calls is:

TIFFOpen()
/* or TIFFCreateDirectory(tif) */
/* Set fields with calls to TIFFSetField(tif, ...) */
TIFFDeferStrileArrayWriting(tif)
TIFFWriteCheck(tif, ...)
TIFFWriteDirectory(tif)
/* ... potentially create other directories and come back to the above directory */
TIFFForceStrileArrayWriting(tif) /* emit the arrays at the end of file */

Returns

1 in case of success, 0 otherwise.

Diagnostics

All error messages are directed to the TIFFErrorExtR() routine. Likewise, warning messages are directed to the TIFFWarningExtR() routine.

Note

This functionality was introduced with libtiff 4.1.

See also

libtiff (3tiff)