2020.02.09 12:14 "[Tiff] Writing image as strips", by David C. Partridge
Existing code writes image scan line by scan line.
I'd like to change to write strips.
Is the following OK?
// Write the image out as Strips (i.e. not scanline by scanline)
const size_t STRIP_SIZE_DEFAULT = 262144UL; // 256kB
// Work out how many scanlines fit into 256K
long rowsPerStrip = STRIP_SIZE_DEFAULT / szScanLineSize;
// From that we derive the number of strips
long numStrips = h / rowsPerStrip;
// If it wasn't an exact division (IOW there's a remainder), add one
// for the final (short) strip.
if (0 != h % rowsPerStrip)
BYTE * curr = (BYTE *)buff;
tsize_t stripSize = rowsPerStrip * szScanLineSize;
tsize_t bytesRemaining = h * szScanLineSize;
tsize_t size = stripSize;
for (long strip = 0, strip < numStrips, strip++)
if (bytesRemaining < stripSize)
size = bytesRemaining;
tsize_t result = TIFFWriteEncodedStrip(m_tiff, strip, curr, size);
if (-1 == result)
bError = true;
curr += result;
bytesRemaining -= result;