[Geotiff] Libtiff 4.0.0 Released
Fred Rothganger
fred at rothganger.org
Tue Jan 31 10:42:39 EST 2012
Frank, Bob,
I used to lurk this list a while back, and have an issue with GeoTIFF
that has just been sitting around on the back burner. However, the
release of Libtiff 4.0 has brought up a related snag in that library, so
wanted to ask you about both together. It would be great if you could
give me guidance on how to proceed to get these resolved...
General: I maintain a library which, in one small part, tries to give
generic access to named-values that exist in image files. For that
reason, it needs to reflect into the tags know to tiff or geotiff. IE:
the simplest way for the code to know all the tags is to use the
respective libraries' own functions. By way of comparison, this is much
like the utility tiffset, except exposed as an api. (The alternative is
to maintain a massive table, which would be redundant with the massive
table already in the library, not to mention fragile.)
* In GeoTIFF, I use the GTIFKeyInfo() function to reflect on the tags
know to the library. However, when setting tags in a new file, the
function doesn't find anything unless it has already been set: a "catch
22". Could GTIFKeyInfo() be modified so it returns known tags,
independent of whether they are already in the file? IE: similar to the
function formerly known as TIFFFindFieldInfoByName()
* In libtiff... Well, version 4.0 pretty much killed
TIFFFindFieldInfoByName(), and the apparent replacement
TIFFFieldWithName() is unusable because TIFFField is held
library-private. It would be incredibly useful to either have public
access to the fields of TIFFField, or have accessor functions for vital
pieces of information from it (like the name of the tag, and parameters
that indicate how to get/set it).
The fact that access to TIFFField was hidden suggested to me that
something like accessors were planned, but I can't find them. OTOH, if
there was a design decision to no longer allow clients of the library to
reflect on tags, then I beg and plead the powers-that-be to reconsider.
A significant part of what the tiff library does is manage tags.
Removing reflection would be a severe lobotomy, and make my code more
complex and fragile.
To illustrate this, imagine what would happen to tiffset.c if it had to
use only publicly available headers.
-- Fred
On 12/22/2011 11:40 AM, Frank Warmerdam wrote:
> Folks,
>
> Of interest to many GeoTIFF and GDAL users, Bob Friesenhahn
> has announced:
>
> """
> At long last, libtiff 4.0.0 is finally released. Libtiff 4.0.0 is the
> successor to the libtiff 3.9.X release series. It is intended to be
> largely API compatible with the 3.9.X releases, but it is definitely
> not ABI compatible so any software which plans to use it will need to
> be recompiled. With appropriate care, source code can easily compile
> with both the 3.9.X releases and libtiff 4.0.0.
>
> This release supports the BigTIFF TIFF format in which all offsets are
> unsigned 64-bit, supporting huge files. APIs which deal with tag
> offsets are necessarily updated to pass 64-bit values. I/O functions
> supporting the TIFFClientOpen() interface are updated to pass 64-bit
> offset values.
>
> Please visit the libtiff page at http://www.remotesensing.org/libtiff/
> to learn more about the release, or to download it.
> """"
>
> Note that GDAL's internal version of libtiff has tracked libtiff4 for several
> years, and it is substantially preferred to using libtiff 3.9 which
> lacks bigtiff
> and many fixes of value to GDAL. Libgeotiff should work smoothly with
> libtiff 3.9.x or libtiff 4.0.
>
> Best regards,
More information about the Geotiff
mailing list