2006.09.20 17:20 "[Tiff] TIFF file bigger than 2Go", by Dlpnet
I have problems creating TIFF file bigger thant 2 Go, or more precisely I cannot read this kind of file with any viewer I find: Photoshop, Irfan, ImageMagick,...
So, I m using libtiff3.7.0 and I also tried libtiff3.8.2 with the same problem.
So I m using these headers:
TIFFSetField(m_pstripFile, TIFFTAG_IMAGEWIDTH, width);
TIFFSetField(m_pstripFile, TIFFTAG_IMAGELENGTH, height);
TIFFSetField(m_pstripFile, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
TIFFSetField(m_pstripFile, TIFFTAG_SAMPLESPERPIXEL, spp);
TIFFSetField(m_pstripFile, TIFFTAG_BITSPERSAMPLE, bps);
TIFFSetField(m_pstripFile, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
TIFFSetField(m_pstripFile, TIFFTAG_PHOTOMETRIC, photometric);
TIFFSetField(m_pstripFile, TIFFTAG_COMPRESSION, comp);
And I write each line with:
TIFFWriteScanline(out, (void *)buf, cbY, 0);
with 'out' the file pointer, 'buf' the buffer of the line and 'cbY' the line number (uint32).
Everything seems to be correctly written and I can produce for example a 2,4Go TIFF file. But I cannot open them in any software. I add that any other file smaller than 2Go can be opened without any problem.
So my questions are:
- is it normal ? I thought the limit of a tiff file is 4Go.
- do I have to set other parameters to allow the creation of bigger files than 2Go ?
- if I look at the resulting tiff file, I can see that the IFD area is at the end of the file. Can this be the problem ? That the software cannot seek to the end of the file to read the IFD header ? Is it a way to tell the libtiff to create the IFD header at the *beginning* of the file ?
- Thanks for your help !