2005.03.05 19:45 "Re: [Tiff] Bogus StripByteCounts field", by Bob Friesenhahn
You might look into TIFFWriteCheck(). I call it like this but I think it is only needed when I haven't even started writing any imagery yet.
TIFFWriteCheck( hTIFF, TIFFIsTiled(hTIFF), "GTiffDataset::Crystalize");
It seems that TIFFWriteCheck() is called for free as the first step of TIFFWriteScanline:
#define WRITECHECKSTRIPS(tif, module) \
(((tif)->tif_flags&TIFF_BEENWRITING) || TIFFWriteCheck((tif),0,module))
int
TIFFWriteScanline(TIFF* tif, tdata_t buf, uint32 row, tsample_t
sample)
{
static const char module[] = "TIFFWriteScanline";
register TIFFDirectory *td;
int status, imagegrew = 0;
tstrip_t strip;
if (!WRITECHECKSTRIPS(tif, module))
return (-1);
Of course the data is compressed so it may be that not everything is known until the last scanline is written.
Bob
======================================
Bob Friesenhahn
bfriesen@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/