2005.02.28 11:51 "[Tiff] Delphi TIFF visualization", by José María Núñez Ortuño

2005.02.28 13:44 "Re: [Tiff] Delphi TIFF visualization", by Joris Van Damme

José,

Sorry, your other mail was marked by my mail server as Spam. I have copy-pasted what you send and tested it. It works fine with some "easy" files, but I obtain a blank image with my "preffered" one. Those are my tags:

Compression (1 Short): JPEG Original TIFF 6.0 spec

Do you detect something not compatible with TIFF specifications?

The problem here is the compression mode. You should contact the vendor of the software that generated the TIFF. The TIFF community has long condemned and abandonded this original 6.0 jpeg-in-tiff compression scheme, because the original specification was ambiguous and plainly breaking TIFF. Tom Lane has written a replacement many many years ago, Technote2, http://www.remotesensing.org/libtiff/TIFFTechNote2.html, and Adobe have absorbed that replacement in a specification supplement http://partners.adobe.com/public/developer/en/tiff/TIFFphotoshop.pdf. Nevertheless, vendors who prefer monopoly at the cost of portability of data insist on writing their particular interpretation of original jpeg-in-tiff compression because we obviously haven't complained enough yet.

LibTiff does try to support reading some vendor's particular interpretations of original 6.0 jpeg-in-tiff. However, it cannot claim to be perfect and complete, the original specification was ambiguous. It quite correctly does not support writing original 6.0 jpeg-in-tiff. LibTiffDelphi 3.7.0.00 does at not support reading this compression scheme. (The reason is technical, despite my additional theoretical objections. Avoiding C runtimes and all such additional weight, I cannot make use of longjumps or exceptions in C. This means that I cannot directly make use if LibJpeg in LibTiffDelphi. Thus, I have to make a detour, LibTiffDelphi calls wrappers of LibJpeg functions in pascal instead, where I can make use of exception handling for trapping and handling LibJpeg errors. This is a lot of additional hassle. I've put in the work for the good Technote2 jpeg-in-tiff compression scheme, but have not yet done so for abandoned old 6.0 jpeg-in-tiff.)

I am however considering investing the work it takes to include LibTiff's normal old-style 6.0 jpeg-in-tiff reading support. If I do, I will do so when I upgrade the package to LibTiff 3.7.1, probably some time soon. I will at that time also remove the 'beta' status, and start adding proper documentation. If you want to be kept informed when this happens, I recommend using the appropriate 'drop us a line' mail-link on the LibTiffDelphi download page http://www.awaresystems.be/imaging/tiff/delphi.html.

Sorry for the inconvinience.

Joris Van Damme
info@awaresystems.be
http://www.awaresystems.be/
Download your free TIFF tag viewer for windows here:
http://www.awaresystems.be/imaging/tiff/astifftagviewer.html