Yes, TIFF files have two page dimensions. You can put directories one after the other with TIFFWriteDirectory() and you'll get a simple multipage document, conceptually like a PDF. This is the dimension you'll find most widely supported in things like GIMP.
Hanging off each top level "page" you can also have subifds. You need extra API to read these and they are not so widely used. The biggest application I've found is in OME-TIFF which stores each channel (so RGB plus various fluorescence and confocal layers) as a separate top-level mono image, then uses subifds to hold pyramid levels. Unless you really need subifds, I'd stick to just using TIFFWriteDirectory(). Just call it at the end of each page, no need for TIFFCreateDirectory(). On Sat, 10 Dec 2022 at 02:17, L. E. Segovia via Tiff <[email protected]> wrote: > > Yes, I did this, but not even GIMP recognises such multi-page files. > > On a related matter, judging from > https://linux.die.net/man/3/tiffsetdirectory, there should be a way to > not need to tamper with TIFFTAG_SUBIFD, i.e. using TIFFReadDirectory > sequentially. In fact, it was the approach we were using up to now. > > That brings me a few questions to mind: > > - Does anyone know if that's the intended use of TIFFReadDirectory? If > so, wasn't the function intended to seek into the next directory on its own? > - Alternatively, are we supposed to use TIFFSetSubdirectory before each > TIFFReadDirectory? (getting the offsets with TIFFGetField) > > Best, > > amyspark > > On 09/12/2022 10:52, [email protected] wrote: > > Hello amyspark, > > > > My understanding is that you set the magic TIFFTAG_SUBIFD tag on a > > directory with an $n element array of offsets, all initialized to 0, > > and then the next $n TIFF directories you write will appear as > > subdirectories of this directory, with the offsets filled in for you. > > > > Or that's what I did here and it seems to work for me: > > > > https://github.com/libvips/libvips/blob/master/libvips/foreign/vips2tiff.c#L2127-L2141 > > > > John > > > > On Fri, 9 Dec 2022 at 12:26, <[email protected]> wrote: > >> > >> The page I followed when implementing TIFF subframe writing is: > >> > >> https://stackoverflow.com/questions/11959617/in-a-tiff-create-a-sub-ifd-with-thumbnail-libtiff > >> > >> HTH > >> Paavo > >> > >> > >> -----Original Message----- > >> From: Tiff <[email protected]> On Behalf Of L. E. Segovia via > >> Tiff > >> Sent: reede, 9. detsember 2022 03:29 > >> To: [email protected] > >> Subject: [Tiff] How to write multi-file TIFFs > >> > >> Hi all, > >> > >> I'm writing to ask about how to create a TIFF with multiple sub-images. > >> Our writing code at Krita is unable to create this kind of files, creation > >> fails with these lines logged: > >> > >>> krita.file: "TIFFLinkDirectory: Error fetching directory count" > >>> krita.file: "TIFFRewriteDirectory: Error fetching directory count" > >> > >> A breakpoint on the TIFF error writing routine shows that both are issued > >> the moment I call TIFFWriteDirectory for the second and further layers. > >> TIFFCreateDirectory, which I saw suggested in tif_overview.c, does not > >> have an effect here. > >> > >> Does anyone know the correct incantations to create this kind of files? > >> I'm running LibTiff 4.4.0 at present. > >> > >> Best, > >> > >> amyspark > >> > >> -- > >> amyspark 🌸 https://www.amyspark.me > >> _______________________________________________ > >> Tiff mailing list > >> [email protected] > >> https://lists.osgeo.org/mailman/listinfo/tiff > >> > >> _______________________________________________ > >> Tiff mailing list > >> [email protected] > >> https://lists.osgeo.org/mailman/listinfo/tiff > > _______________________________________________ > > Tiff mailing list > > [email protected] > > https://lists.osgeo.org/mailman/listinfo/tiff > > -- > amyspark 🌸 https://www.amyspark.me > _______________________________________________ > Tiff mailing list > [email protected] > https://lists.osgeo.org/mailman/listinfo/tiff _______________________________________________ Tiff mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/tiff
