2014.04.23 02:13 "[Tiff] Custom EXIF write does not work for stream writer", by Chia-Kai Liang

2014.05.23 01:38 "Re: [Tiff] Custom EXIF write does not work for stream writer", by Chia-Kai Liang

I found the problem is that the _tiffosReadProc (in tif_stream.cxx) is not implemented (libtiff4.0.4) so TIFFFetchDirectory would fail. It seems strange as that TIFFSetDirectory is required for writing but the help function is not implemented.

In my own implementation, I try to read when the stream can be casted to iostream, which works well.

Chia-Kai Liang

On Wed, Apr 23, 2014 at 9:56 PM, Edward Lam <edward@sidefx.com> wrote:

On Tue, April 22, 2014 22:13, Chia-Kai Liang wrote:

I tried to use the EXIF directory read/write as described in http://www.asmail.be/msg0055060707.html, and find it would fail for stringstream

If I replace

   tif = TIFFOpen(filename, "w+");

in the example code to

    std::stringstream buf_stream;

    tif = TIFFStreamOpen("MemTIFF", (std::ostream*)&buf_stream);

I would get the following error at TIFFSetDirectory(tif, 0):

TIFFFetchDirectory: MemTIFF: Can not read TIFF directory count. TIFFReadDirectory: Failed to read directory at offset 22688648.

Does using ostringstream instead of stringstream make a difference?