1996.12.05 22:28 "tiffcp and tiled, planar files", by Ed Grissom
Hello all -
I have run into a problem generating tiled, planar config = 2, RGB files with tiffcp. Unless I am doing something wrong, it appears that the problem lies in tiffcp's data copying routines, not libtiff itself.
Here is an example that you should be able to try...
tiffcp -c none -p contig -t -w 128 -l 128 input.tif tiled.tif
tiffcp -c none -p separate -t -w 128 -l 128 tiled.tif tilplan.tif
"input.tif" is a strip-based, chunky, RGB image.
"tiled.tif" looks ok as a tiled chunky RGB image.
"tilplan.tif" is where the problem occurs.
If the length and width of "input.tif" are identical to the tile size (i.e. exactly one full tile), everything is ok. In all other cases, a variety of problems appear.
input.tif size tile size result
125x125 128x128 scrambled data
128x128 128x128 good image
250x250 128x128 top half scrambled, bottom blank
256x256 128x128 top half ok, bottom blank
I have disabled STRIPCHOP_SUPPORT (per previous list discussion) to no avail.
Doing this in one step (input.tif -> tilplan.tif) gives identical results, but I wanted to be sure that tiffcp was not having trouble doing tiling and band separated data at the same time. With the two step process, the input is tiled, as is the output, so it only needs to separate the planes in the second step. (Hmmm... tiffcp may just get the entire input image into a buffer, regardless of strip/tiles, so there may be no differences in the two cases.)
Identical results are obtained with "-c lzw" or "-c packbits".
Am I doing something wrong, or is this a known problem, or has this not come up before? (I realize tiling is not widely supported, nor is "planar" data, so I won't be surprised if no one has tried this)
This was mainly an exercise to generate some files for testing our own internal TIFF I/O implementation, so does anyone have any small, planar, RGB multiple tile files that I could test with?
Is anyone familiar enough with the data copy routines in tiffcp to help me understand/debug the problem?
Thanks for any help.....