It should work. I made you a tiny demo prog: https://gist.github.com/jcupitt/912b0da1c95b615152fa0fbd6e4cc821
It builds and runs without error, and the result loads into gimp as a 10 page document (or 10 layer image). On Sat, 10 Dec 2022 at 12:16, L. E. Segovia <[email protected]> wrote: > > Um, this is the gist of my initial post. Using TIFFWriteDirectory > sequentially just does not work, so I'm left with no way to create > multipage TIFFs: > > > 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. > > I'm not sure if the documentation is mistaken or I'm doing something > wrong, as most examples out there use SubIFD (and even those are few and > far between). > > amyspark > > On 10/12/2022 08:29, [email protected] wrote: > > 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 > > -- > amyspark 🌸 https://www.amyspark.me _______________________________________________ Tiff mailing list [email protected] https://lists.osgeo.org/mailman/listinfo/tiff
