2016.10.24 14:54 "Re: [Tiff] Question regarding tag StripOffsets when there is only one strip", by Recursive

2016.10.25 08:53 "Re: [Tiff] Question regarding tag StripOffsets when there is only one strip", by Recursive

On 24.10.2016 20:43, Paavo Helde wrote:

Out of curiosity, what is the operation on TIFF files which cannot be done via LibTIFF? Maybe the LibTIFF library should be enhanced to include this operation?

I am not sure if I should tell that exactly right now because I am seriously thinking about selling that software for a small fee if it works :-) But maybe it will never work because I have understood something horribly wrong and at a very basic level. I promise I will describe the problem and the function of the software when the first version is ready. I am hoping to come up with it in one or two weeks.

If your software is meant for public use and work on TIFF files from unknown origin, then you cannot ignore BigTIFF. There is at least one large company which produces all TIFF-s as BigTIFF even if they are only 10 kB in size. The format will certainly become more popular in the future.

This is a very valuable hint. Thank you very much. Indeed, until now, I was hoping that I could ignore BigTIFF.

I will now finish the first version of my software which will only support TIFF; this is merely a proof of concept. Then, I will look for the BigTIFF specification and hope that I understand it as easily as the TIFF 6.0 specification (which is written very well and clearly IMHO) and that I can change my software accordingly to add BigTIFF support.

You need also support tiled TIFF-s. You need also support all the different compression schemes. Do you really want to implement LZW and JPEG decompression from scratch? And are you prepared for upgrading your software when new compression schemes or other features are added in the future?

Are you prepared to handle RowsPerStrip tags which are missing or have invalid value (happens in many TIFF files)? Are you prepared to handle the missing or duplicate zero terminators in the end of string values? Etc, etc.

There is a reason why software libraries exist.

You are completely right. But I think that LibTIFF can't be changed easily to provide what I need; it seems to be a problem of LibTIFF's API architecture / paradigm. Adding to my own impression, I already have asked in the forum of ImageMagick if they could incorporate what I need, but got the answer that there are no chances due to the nature of LibTIFF and how ImageMagick has to use it.

I would be more than happy if my software could use LibTIFF under the hoods. Therefore, I have thoroughly studied its API before trying to do things myself, but unfortunately, I see absolutely no way to achieve what I want.

Furthermore, before beginning my software, I already had set up a development environment for tests with LibTIFF (Eclipse CDT, Cygwin64, cygwin-gcc, LibTIFF from Cygwin). I have made a very simple test program which used LibTIFF; that ended with a segmentation fault although I didn't use pointers, arrays or other dangerous things myself. That was the point where I gave up, especially because I already was convinced that LibTIFF currently does not implement what I need anyway.

Thank you very much again,

Recursive