# 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)