2004.12.07 15:52 "Re: [Tiff] Fetching pixel data from 4bit tiff", by Bob Friesenhahn
Hi. I'm new to libtiff and I'm no C guru either, so please excuse my ignorance here.
I am trying to get pixel data from a 4bit TIFF. I can use TIFFReadRGBAImage, TIFFReadR, TIFFReadG, TIFFReadB, TIFFReadA but surely these will not provide the correct data for a 4bit image?
What method should I use to work with the raster, and what sort of data should I expect from a 4bit image pixel?
You should use TIFFReadScanline() to read each scanline into memory you have allocated. There is one scanline per row. The scan-line is returned packed according to the TIFF specification, with two samples per byte. It is a small matter of masking and shifting to obtain each nibble. The only tricky case is to properly handle an image with an odd number of columns.
TIFFReadRGBAImage() should only be used for color RGB images and is best reserved for use when all other approaches fail since it is not very memory efficient.