| 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 |
Thread2008.08.28 07:39 "Array of doubles to private tag", by <jtanis@gmail.com>Hi, I'm dealing with (for me) a strange problem. I'm trying to write a number of double's to a private tag. Shouldn't be a problem I thought, but it seems it is. For this I wrote the following test code for an array of shorts and doubles. The array with shorts works great! With the double's, I see that the tag is made within the TIFF file, but there arent't any values... I check each ' TIFFSetField' and all results are 1, meaning succes... Result: http://i38.tinypic.com/143qgat.png [CODE] ------------------------------------------- #include <tiffio.h> #include <stdio.h> #define TIFFTAG_R00 40001 #define TIFFTAG_R01 40002 static void TagExtender(TIFF *tiff) { static const TIFFFieldInfo xtiffFieldInfo[] = { { TIFFTAG_R00, 4, 4, TIFF_DOUBLE, FIELD_CUSTOM, 0, 1, "R00" }, { TIFFTAG_R01, 4, 4, TIFF_SHORT, FIELD_CUSTOM, 0, 1, "R01" }, }; TIFFMergeFieldInfo( tiff, xtiffFieldInfo, sizeof(xtiffFieldInfo) / sizeof(xtiffFieldInfo[0]) ); } int main() { TIFF *tiff; TIFFSetTagExtender(TagExtender); tiff = TIFFOpen("foo.tiff", "w"); short shortD[4] = {1,2,3,4}; double doubleD[4] = {0.2,1.2,2.2,3.2}; TIFFSetDirectory(tiff, 0); bool result = true; // Setting fields result &= (TIFFSetField(tiff, TIFFTAG_IMAGEWIDTH, 100) == 1); result &= (TIFFSetField(tiff, TIFFTAG_IMAGELENGTH, 100) == 1 ); result &= (TIFFSetField(tiff, TIFFTAG_BITSPERSAMPLE, 8) == 1); result &= (TIFFSetField(tiff, TIFFTAG_SAMPLESPERPIXEL,3) == 1); // Writing Private tags result &= (TIFFSetField(tiff, TIFFTAG_R00, 4, &doubleD) == 1); result &= (TIFFSetField(tiff, TIFFTAG_R01, 4, &shortD) == 1); TIFFWriteDirectory(tiff); TIFFClose(tiff); return 0; } |
|||||||