AWARE [SYSTEMS] Imaging expertise for the Delphi developer
AWare Systems, Imaging expertise for the Delphi developer, Home TIFF and LibTiff Mailing List Archive

LibTiff Mailing List

TIFF and LibTiff Mailing List Archive
February 2012

Previous Thread
Next Thread

Previous by Thread
Next by Thread

Previous by Date
Next by Date

Contact

The TIFF Mailing List Homepage
This list is run by Frank Warmerdam
Archive maintained by AWare Systems



Valid HTML 4.01!



Thread

2012.02.22 08:22 "Creating a CMYK tiff", by Dan Claudiu Zaharescu
2012.02.22 19:56 "Re: Creating a CMYK tiff", by Andreas Kleinert
2012.02.22 20:33 "Re: Creating a CMYK tiff", by Igor Skochinsky
2012.02.22 23:30 "Re: Creating a CMYK tiff", by <pullmoll@t-online.de>
2012.02.23 02:02 "Re: Creating a CMYK tiff", by Bob Friesenhahn
2012.02.23 07:12 "Re: Creating a CMYK tiff", by Dan Claudiu Zaharescu

2012.02.22 08:22 "Creating a CMYK tiff", by Dan Claudiu Zaharescu

Hello all,

The problem was posted before, about 10 years ago, but there were no
satisfying answer for it:
2002.08.01 05:39 "Tiff AND CMYK", by <storein@sina.com>


I am now trying to do the same thing, but I am facing some difficulties:
Here is some relevant code, and I have bolded the most important calls:

TIFFSetField(image, TIFFTAG_SAMPLESPERPIXEL, 4);

/* When I use separate plans, the tiff cannot be opened, but I don't think
contig is good here!! */
 //TIFFSetField(image, TIFFTAG_PLANARCONFIG, PLANARCONFIG_SEPARATE);
 TIFFSetField(image, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);


 // We need to set some values for basic tags before we can add any data
TIFFSetField(image, TIFFTAG_IMAGEWIDTH, width);
TIFFSetField(image, TIFFTAG_IMAGELENGTH, height);
TIFFSetField(image, TIFFTAG_BITSPERSAMPLE, 8);
TIFFSetField(image, TIFFTAG_ROWSPERSTRIP, height);

TIFFSetField(image, TIFFTAG_FILLORDER, FILLORDER_MSB2LSB);
/*I use lzw data, but I think this is not very relevant */
TIFFSetField(image, TIFFTAG_COMPRESSION, COMPRESSION_LZW);

TIFFSetField(image, TIFFTAG_XRESOLUTION, 600.0);
TIFFSetField(image, TIFFTAG_YRESOLUTION, 600.0);
TIFFSetField(image, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH);


Now, I have 4 buffers of LZW data:

For each buffer, I try to call:

TIFFWriteRawStrip(image, 0, buff, buffLen);
Is it ok to call the method this way? 

Should I pass to the second paramter the number of the buffer (0,1,2 and 3)?



However the results are disappointing, I am obtaining a tiff with many
duplicated images and 
these images are not colored as they should be.

Some further remarks:
"Tag may not have its values changed once data is written.
If SamplesPerPixel is one, then a single array is passed; otherwise three
arrays should be passed." - this is written in TIFFSetField manual :
http://www.libtiff.org/man/TIFFSetField.3t.html
What fields should I se 4 times and how?


I have tried more combination as described above, but could not make it work
in any way.


Does anybody now how these issue should be handled?
I will further investigate myself this issue and come back again with a new
mail if I will find a solution.



All the bests, Dan.