| 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 |
Thread2003.12.26 09:36 "Re: problems with custom TIFF", by Andrey KiselevPushkar,
On Thu, Dec 25, 2003 at 08:25:47PM -0600, Pushkar Pradhan wrote:
> I'm working on a TIFF created by ERDAS IMAGINE 8.6, a remote
> sensing/GIS software. The file info as given by tiffinfo (it warns
> about a few custom tags that it can't read, these are above 32000):
> Image Width: 421 Image Length: 295
> Resolution: 1, 1 (unitless)
> Bits/Sample: 16
> Sample Format: unsigned integer
> Compression Scheme: None
> Photometric Interpretation: min-is-black
> Extra Samples: 2<unspecified, unspecified>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> Orientation: row 0 top, col 0 lhs
> Samples/Pixel: 3
^^^^^^^^^^^^^^^^^^^^
These two tags means that you don't have RGB image, but single band
image with the two extra channels. It is not clear how to interpret the
two external channels, it should be application dependent.
SamplesPerPixel tag contains total band number, and ExtraSamples tag
specifies how many extra bands in the total number.
> I read in the 3 bands using TIFFReadEncodedStrip and write out to a
> new file (after converting RGB to LHS in IEEE FP format). This is info
> given by tiffinfo of output file:
> Image Width: 421 Image Length: 295
> Bits/Sample: 32
> Sample Format: IEEE floating point
> Compression Scheme: None
> Photometric Interpretation: min-is-black
> Samples/Pixel: 3
> Rows/Strip: 9
> Planar Configuration: single image plane
>
> However, the software is unable to open this file. I suspect this has
> got something to do with the Extra Samples: 2<unspecified,
> unspecified> thing? I found out that this tells whether there is alpha
> information in the file or not. But can somebody explain to me how to
> read it? The man page is confusing. Also once I get it what should I
> do with it when writing out the output file?
Description looks fine. Have you used Imagine to read that file or other
software?
> Here's my code for more information:
> size = TIFFReadEncodedStrip(tif, strip, bufRGB, (tsize_t)-1);
^^^^^^^^^^^^^
Why do you using -1 here? It should be a size of bufRGB in bytes.
> Rgb2Lhs(bufRGB, bufRGB+size, bufRGB+(size*2), tags.dType, tags.config,
> bufLHS, bufLHS+size, bufLHS+(size*2),
> tags.imageLength, tags.rowsPerStrip);
I think you are trying to do th wrong thing here. With the above
PalnarConfiguration the values in buffer are pixel interleaved:
RGBRGBRGB....
> size = TIFFWriteEncodedStrip(wtif, strip, bufLHS, size*sizeof(float));
^^^^^^^^^^^^^^^^^^
It should be (size/TIFFDataWidth(inputType))*sizeof(float), because
TIFFReadEncodedStrip() returns the number of taken bytes, not number of
taken samples.
--
Andrey V. Kiselev
Home phone: +7 812 5274898 ICQ# 26871517
|
|||||||