| AWARE [SYSTEMS] | Imaging expertise for the Delphi developer | |||||||
![]() |
TIFF and LibTiff Mailing List Archive | |||||||
LibTiff Mailing List
TIFF and LibTiff Mailing List Archive Contact
The TIFF Mailing List Homepage |
Thread2004.11.23 20:34 "Re: Using TIFFGetField to get a "Rational"", by Andrey KiselevOn Thu, Nov 18, 2004 at 10:05:44AM -0800, Stephen Billard wrote:
> I am new to LibTIFF. I want to get the ResolutionUnit, XResolution,
> and YResolution from a TIFF file. I have no problem getting the
> Resolution unit. (Although I did see a strange behavior. If I had not
> initialized the variable that receives the ResolutionUnit value before
> calling TIFFGetField, I did not get back the value. If I initialize
> the variable to 0, I get back the correct unit.)
That is strange. If the file lacks ResolutionUnit tag the variable remains
unchanged. In that case you can get a garbage in the variable if it was
not properly initialized. I'm recommend using TIFFGetFieldDefaulted()
for tags for which default value defined by specification. I'm recommend
always initialize variables with a reasonable value.
> I am having no luck with the X & Y Resolutions. I suspect that I don't
> know what kind of variable to receive the "Rational" result. I tried a
> Real and got garbage back. What should I be using? (I get no errors
> back from calling TIFFGetField.)
You should use float (32-bit floating point value). The following code
should work for you:
uint16 res_unit;
float xres = 0.0F, yres = 0.0F;
TIFFGetFieldDefaulted(tif, TIFFTAG_RESOLUTIONUNIT, &res_unit);
TIFFGetField(tif, TIFFTAG_XRESOLUTION, &xres);
TIFFGetField(tif, TIFFTAG_YRESOLUTION, &yres);
Andrey
--
Andrey V. Kiselev
Home phone: +7 812 5970603 ICQ# 26871517
|
|||||||