| 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.05.16 07:18 "Re: tiffset usage, ResolutionUnits", by Andrey KiselevOn Sat, May 15, 2004 at 02:00:14PM -0400, Richard Morris wrote:
> Can anyone point me to any documentation on usage of the "tiffset"
> utility? I am trying to convert ResolutionUnits on Tiff files from cm
> to inches, and am not successful so far.
tiffset is not a complete ready to use application yet. Fortunately it
is pretty simple to achieve your goal using the following code:
#include <stdio.h>
#include "tiffio.h"
int main(int argc, char* argv[])
{
TIFF *tiff;
double xres = 0.0, yres = 0.0;
if (argc < 2)
return 1;
tiff = TIFFOpen(argv[argc-1], "r+");
if (tiff == NULL)
return 2;
/* For list of available tags and tag values see tiff.h */
if (TIFFSetField(tiff, TIFFTAG_RESOLUTIONUNIT, RESUNIT_CENTIMETER) != 1)
fprintf( stderr, "Failed to set ResolutionUnit.\n");
/* Don't forget to calculate and set new resolution values */
if (TIFFSetField(tiff, TIFFTAG_XRESOLUTION, xres) != 1)
fprintf( stderr, "Failed to set XResolution.\n");
if (TIFFSetField(tiff, TIFFTAG_YRESOLUTION, yres) != 1)
fprintf( stderr, "Failed to set YResolution.\n");
TIFFRewriteDirectory(tiff);
TIFFClose(tiff);
}
But be warned that the new TIFF directory will be added to the file each
time running that program, increasing the file size.
> I see from the libtiff manual that the tag value for ResolutionUnits
> is 296, but I don't know how to set the value. From tiffdump output, I
> saw that tiff files with resolution in cm output "ResolutionUnit (296)
> SHORT (3) 1<3>", while tiffs with resolution in inches output
> "ResolutionUnit (296) SHORT (3) 1<2>".
That is right, inches coded by the value 2, centimeters by the value 3.
Andrey
--
Andrey V. Kiselev
Home phone: +7 812 5274898 ICQ# 26871517
|
|||||||