| 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 |
Thread2004.06.07 17:29 "Re: Reading from part of a TIFF while writing another", by James CarrollThanks Frank, This gives me some much nicer options than having lots of little files while I'm trying to read and write. The first thing that I'm trying to write while I read (I can write after I read since the volume of data is small in this case) is a thumbnail overview. I'm following the code in the tiff3.6.1/tools/thumbnail.c and used the official thumbnail tool to transform this tiff image: http://neuroinformatica.com:8080/jims/256x4x3.tif into this: http://neuroinformatica.com:8080/jims/256x4x3t.tif using the command: thumbnail 256x4x3.tif 256x4x3t.tif Irfanview can view the first one, but the second (with the t in the name) is not recognized as valid. My guess is that I didn't really write a valid tiff when I created the first file. My code looks like: m_pTiff = TIFFOpen(lpszPathName, "w"); TIFFSetField(m_pTiff, TIFFTAG_IMAGEWIDTH, iWidth) TIFFSetField(m_pTiff, TIFFTAG_IMAGELENGTH, iHeight) TIFFSetField(m_pTiff, TIFFTAG_BITSPERSAMPLE, 8) TIFFSetField(m_pTiff,TIFFTAG_SAMPLESPERPIXEL, 3) TIFFSetField(m_pTiff,TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG) TIFFSetField(m_pTiff, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT); // YCbCr makes a much smaller jpeg tile TIFFSetField(m_pTiff, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_YCBCR); // make the tiles jpegs uint32 iJpegQuality = 80; uint32 jpegcolormode = JPEGCOLORMODE_RGB; TIFFSetField(m_pTiff, TIFFTAG_COMPRESSION, COMPRESSION_JPEG); TIFFSetField(m_pTiff, TIFFTAG_JPEGQUALITY, iJpegQuality); TIFFSetField(m_pTiff, TIFFTAG_JPEGCOLORMODE, jpegcolormode); uint32 tilewidth = 256; uint32 tilelength = 256; TIFFSetField(m_pTiff, TIFFTAG_TILEWIDTH, tilewidth); TIFFSetField(m_pTiff, TIFFTAG_TILELENGTH, tilelength); Then I call WriteTile a bunch of times... sizeWritten = TIFFWriteTile(m_pTiff, tempTile, iTileX, iTileY, 0, 0); Am I forgetting to initialize anything? Thanks, -Jim |
|||||||