2007.05.04 13:02 "Re: [Tiff] TIFFSetField and float values", by Joris Van Damme
Oh, my, I've found the reason. Digging into the source code I realized that TIFFSetField
gets the parameter from va_arg as double:
(From tif_dir.c,v 1.72 2006/03/15 12:49:35, line 234:)
td->td_xresolution = (float) va_arg(ap, double);
When I pass argument of type double, the tag saves the value properly. Looks like an error in documentation (TIFFSetField.3tiff.html)?
I would agree... but I suspect other compilers may behave differently. I suspect that passing a float, as per documentation, would work for most, but passing a double will work for all. I've also tried changing the code you quote from tif_dir.c to va_arg(ap,float), but that doesn't work on our Borland compilers at all (and likely it will not work on most other compilers either, I think). So I'm about to propose to change the documention to specify a double parameter as part of the next update.
Joris Van Damme
Download your free TIFF tag viewer for windows here: