2002.08.30 19:04 "Re: Problem Reading MultiPage TIFFs", by Steven Luke
Sorry if this is a re-post, but I seem to have trouble getting mail through.
Thanks for the help on this, but I have run into another problem. It turns out that the images I am working with are not set up with multiple directories.
Instead there is a single directory and all the images are stored contiguously starting at the first StripOffset. So Strip #1 of the second image is stored directly after the last Strip of the first image. Using StripOffsets, StripsPerImage, and StripByteCounts I can find the offset for each additional image, but I am still having problems.
1st: How do I get LibTiff to read the images at these new offsets? I would think there would be a field in the TIFF struct that holds the offset to the image, but I can't acces it and without that I can't read any data past the last row of the first image. Is there a workaround for this? A seek function maybe?
2nd: I can't use the directory counting method to find out how many images are present in the file, since there is only one directory. The number is present in a couple of tags as the 'count' field. Is there a way to get at the count of a field (for data that is stored in arrays)?
3rd: I took at look at the TIFFClientOpen function hoping that it was the answer to my problems, but I don't understand it enough to get started. (You will see how new I am at this with these questions) Where does the thandle_t clientdata handle come from? Is it some value that I assign, arbitrary in nature, or should it be something that really means something (and what)? I would have to write a TIFFlseek function for the TIFFSeekProc callback, but I am not really sure where to get started with this. Could someone show me an example piece of code? Would I have to write callbacks for all the procs listed in the TIFFClientOpen call or would I be able to just pass NULLs to the ones I dont want to use? As you can see, I really am not sure where to get started, if somebody could show me an example program that uses the TIFFClientOpen it would help a lot.
Steven J. Luke
Kimmel Cancer Center Bioimaging Facility
Thomas Jefferson University