| 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 |
Thread2011.01.25 01:02 "Re: Cannot read YCbCr JPEG-compressed images", by Craig BruceCharles Auer <bumble731@msn.com> wrote:
> Using TIFFReadEncodedTile, I was able to decode all 7 images in the
> sample file without any errors.
I put together the following test program:
#include <stdio.h>
#include <stdlib.h>
#include <tiffio.h>
main()
{
TIFF *tiff;
ttile_t tileNum;
tsize_t tileSize;
int readSize;
tdata_t buf;
tiff = TIFFOpen( "Q09050_006_NIR.tif", "r" );
if (tiff == NULL) goto ERROR;
tileNum = TIFFComputeTile( tiff, 0, 0, 0, 0 );
tileSize = TIFFTileSize( tiff );
buf = malloc( tileSize );
printf( "tileNum=%ld, tileSize=%ld, buf=%p\n", (long) tileNum,
(long) tileSize, (long) buf );
readSize = TIFFReadEncodedTile( tiff, tileNum, buf, tileSize );
if (readSize == -1) goto ERROR;
printf("successful read, size=%d\n", readSize );
exit( 0 );
ERROR:
printf( "ERROR!\n" );
exit( 1 );
}
If I build it using the system libraries on my computer (Linux x86_64,
Fedora 13, libtiff 3.9.4), it works:
$ gcc tile.c -ltiff -ljpeg -lz -lm -o tile_test
$ ./tile_test
TIFFReadDirectory: Warning, Q09050_006_NIR.tif: unknown field with tag 50742
(0xc636) encountered.
tileNum=0, tileSize=98304, buf=0x2124a60
successful read, size=98304
However, if I build and link with my own libtiff 4.0.0beta6 with the
default configuration, I get the buffer error:
$ gcc -I ~/tiff-4.0.0beta6/libtiff tile.c
~/tiff-4.0.0beta6/libtiff/.libs/libtiff.a -ljpeg -lz -lm -o tile_test
$ ./tile_test
TIFFReadDirectory: Warning, Unknown field with tag 50742 (0xc636)
encountered.
TIFFFetchNormalTag: Warning, ASCII value for tag "ImageDescription" does not
end in null byte.
TIFFFetchNormalTag: Warning, ASCII value for tag "Software" does not end in
null byte.
tileNum=0, tileSize=98304, buf=0x22092b0
JPEGDecodeRaw: application buffer not large enough for all data..
ERROR!
The behaviour is consistent across a couple different versions of Fedora-
built and personally-build libtiffs. Is there some special libtiff
configuration needed to make YCbCr/JPEG reading work properly? I need
to use a custom-built libtiff.
--------------------------+----------------------+--------------------------
Dr. Craig S. Bruce | Ph 819-771-8303 x205 | CubeWerx Inc.
Senior Software Developer | Fax 819-771-8388 | Gatineau, Québec,
Canada
csbruce@cubewerx.com | http://csbruce.com/ | http://www.cubewerx.com/
--------------------------+----------------------+--------------------------
The Free Market is why Canadian flags are made in China instead of
Singapore.
_______________________________________________
Tiff mailing list: Tiff@lists.maptools.org
http://lists.maptools.org/mailman/listinfo/tiff
http://www.remotesensing.org/libtiff/
|
|||||||