2007.01.17 02:57 "Re: [Tiff] Elevation Data", by Bob Friesenhahn
On Tue, 16 Jan 2007, Craig Bruce wrote:
I would like to write signed 16-bit elevation data to a TIFF image file, but according to the TIFF 6.0 specification, there doesn't appear to be a correct way to do this. The specification allows the use of the SampleFormat to specify that the samples are signed 16-bit integers, but this range of values is incompatible with the PhotometricInterpretation tag, which must be present. The obvious PhotometricInterpretation to use is BlackIsZero, but its range is defined as 0 to 2**nbits-1 (i.e., unsigned integers).
So, how does one make a correct image using a SampleFormat other than unsigned integer? What is the most compatible incorrect approach?
Libtiff uses the names PHOTOMETRIC_MINISWHITE and PHOTOMETRIC_MINISBLACK. This implies something different than BlackIsZero. Does that help?
Also, is there a semantic difference between SMinSampleValue and MinSampleValue? The spec explicitly states that MinSampleValue is just statistical and isn't part of a valid-sample-range definition, but it's much more coy about SMinSampleValue. If it isn't part of a hard range definition, then how can one make an interoperable image with floating-point samples?
It seems difficult to make a completely interoperable image using floating-point samples. I have heard that some software which supports floating-point TIFF checks all the sample values in order to best understand how it should be displayed (assuming it can be reasonably displayed at all).
Adobe issued a new draft specification (dated April 8, 2005) which discusses floating point in TIFF as implemented in Adobe Photoshop CS2. Unfortunately, it does not address sample ranges other than to reference openexr documentation.
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/