2005.03.15 17:56 "[Tiff] Need to write CCITT T.6 encoded TIFF file data directly to memory buffer", by Roger Watkins

2005.03.16 22:24 "Re: [Tiff] Need to write CCITT T.6 encoded TIFF file datadirectlytomemory buffer", by Joris Van Damme


Let's see if I understand this... The application interface simply calls the top-level functions, which are configured by TIFFClientOpen() to use the proper I/O interface routines for the type of computer and I/O (stream, file, buffer) called for. Once thus configured, and with the platform independent autoconfiguration of the CODECs that occurs during opening of the TIFF itself, TIFFReadEncodedStrip() and TIFFWriteEncodedStrip() know where and how to process the data provided. As a result, to do my TStream interface, I need only write TIFFStreamReadProc(), TIFFStreamWriteProc(), TIFFStreamSeekProc(), TIFFStreamCloseProc(), TIFFStreamSizeProc(), TIFFNoMapProc(), and TIFFNoUnmapProc() and a TIFFOpenStream() that calls TIFFClientOpen() and passes it these function addresses.

That's about it!

One remaining question, to which I know the answer is yes, but I need to know where to look for information: Where do I find specifications or requirements for writing these routines for which pointers are passed in TIFFClientOpen()?

To the best of my knowledge, the TIFFOpen man page is the only documentation on this.


I know for a fact that the TStream IO procedures in LibTiffDelphi.pas work, and you've identified them, so the easiest way is probably to translate these short routines to C. If you do, posting your translation here is a) a good way to have second opinions on it, and b) a nice gift to an archive user that has the same requirement.

Best regards,

Joris Van Damme
Download your free TIFF tag viewer for windows here: