TIFFSTRILEQUERY(3tiff)

✨ TIFFSTRILEQUERY ✨ (3tiff)

okay bestie, welcome to the LibTIFF corner of the manual, where we talk about strile stuff πŸ’… (a "strile" is a strip or a tile, and yes the name is a little cursed, we love her anyway 🫢)


πŸ’– NAME πŸ’–

TIFFStrileQuery β€” get that strile byte count and offset, fr fr πŸŽ€


🌸 SYNOPSIS 🌸

#include <tiffio.h>

uint64_t TIFFGetStrileByteCount(TIFF *tif, uint32_t strile);

uint64_t TIFFGetStrileOffset(TIFF *tif, uint32_t strile);

uint64_t TIFFGetStrileByteCountWithErr(TIFF *tif, uint32_t strile, int *pbErr);

uint64_t TIFFGetStrileOffsetWithErr(TIFF *tif, uint32_t strile, int *pbErr);

πŸ¦‹ DESCRIPTION πŸ¦‹

So the whole point of this glow-up: deferred strile offset/bytecount loading is now a runtime thing, and you also get per-strile offset/bytecount loading. Part of this commit makes the behaviour you used to only get when libtiff was compiled with -DDEFER_STRILE_LOAD available in default builds. no cap ✨

When you pass the new D (Deferred) TIFFOpen() flag, the loading of strile offset/bytecount is deferred. In that mode, the StripOffsets / StripByteCounts or TileOffsets / TileByteCounts arrays are only loaded when first accessed. This can speed-up the opening of files stored on the network when just metadata retrieval is needed. it's giving "I just wanna peek at the metadata bestie, I don't need the whole art piece" 😌

Another addition is the capability of loading only the values of the offset/bytecount of the strile of interest instead of the whole array. This is enabled with the new O (Ondemand) flag of TIFFOpen() (which implies D). obsessed. πŸ™ˆ

The public TIFFGetStrileOffset(), TIFFGetStrileOffsetWithErr(), TIFFGetStrileByteCount() and TIFFGetStrileByteCountWithErr() functions have been added to the API. They are of particular interest when using sparse files (with offset == bytecount == 0) and you want to detect if a strile is present or not without decompressing the data, or updating an existing sparse file. main character energy, honestly πŸ‘‘

Let's go one by one:

  • TIFFGetStrileByteCount() β€” returns the value of the TileByteCounts / StripByteCounts array for the specified tile/strile. literally just hands you the number πŸ’«
  • TIFFGetStrileByteCountWithErr() β€” same vibe, but it additionally provides pbErr as an int pointer to an error return variable, which is set to "0" for successful return or to "1" for an error return. 🫢
  • TIFFGetStrileOffset() β€” returns the value of the TileOffsets / StripOffsets array for the specified tile/strile. the address, the location, the where πŸ“
  • TIFFGetStrileOffsetWithErr() β€” you guessed it, it additionally provides pbErr as an int pointer to an error return variable, which is set to "0" for successful return or to "1" for an error return. 🌈

πŸ’€ DIAGNOSTICS πŸ’€

All error messages are directed to the TIFFErrorExtR() routine. Likewise, warning messages are directed to the TIFFWarningExtR() routine. so if something goes sideways, that's where it's yelling from πŸ“£


⭐ NOTE ⭐

This functionality was introduced with libtiff 4.1. so if you're on something older, bestie, it's not gonna work and it's not you, it's the version 😭


πŸ‘‘ SEE ALSO πŸ‘‘

  • libtiff (3tiff)
  • TIFFOpen (3tiff)
  • TIFFDeferStrileArrayWriting (3tiff)

πŸ’œ AUTHOR πŸ’œ

LibTIFF contributors 🧚


1988-2025, LibTIFF contributors


and that's the whole page, bestie!! this was page 4.7, dated Jun 27, 2026, brought to you by the LibTIFF girlies ✨ slay, go read your striles, periodt πŸ’