C ++ libtiff创建平铺tiff图像的压缩并不起作用

时间:2016-09-09 09:17:49

标签: c++ libtiff

我一直在寻找知识,但我无法找到解决问题的解决方案。 我使用libtiff库来编写巨大的(> 10Go)平铺图像。没有任何压缩,一切正常。但是当我尝试压缩瓷砖时会出现问题。

这是我的代码:

TIFF *m_outBigTiffFile = TIFFOpen("HugeMapping.tif", "w+");
TIFFSetField(m_outBigTiffFile, TIFFTAG_IMAGEWIDTH, width);   
TIFFSetField(m_outBigTiffFile, TIFFTAG_IMAGELENGTH, height); 
TIFFSetField(m_outBigTiffFile, TIFFTAG_BITSPERSAMPLE, 8);       
TIFFSetField(m_outBigTiffFile, TIFFTAG_COMPRESSION, COMPRESSION_JPEG);
TIFFSetField(m_outBigTiffFile, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK);
TIFFSetField(m_outBigTiffFile, TIFFTAG_ORIENTATION, ORIENTATION_TOPLEFT);
TIFFSetField(m_outBigTiffFile, TIFFTAG_SAMPLESPERPIXEL, sampleperpixel);  
TIFFSetField(m_outBigTiffFile, TIFFTAG_ROWSPERSTRIP, 1);
TIFFSetField(m_outBigTiffFile, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG);
TIFFSetField(m_outBigTiffFile, TIFFTAG_RESOLUTIONUNIT, RESUNIT_INCH);
TIFFSetField(m_outBigTiffFile, TIFFTAG_TILEWIDTH, tileW);   
TIFFSetField(m_outBigTiffFile, TIFFTAG_TILELENGTH, tileH);
int tileSize = TIFFTileSize(m_outBigTiffFile)

当我尝试使用标签COMPRESSION_JPEG或COMPRESSION_LWZ时,无法打开图像。我有以下错误试图阅读: " LZWDecide:扫描线0和#34处的LZW表损坏; 或者"未配置JPEG压缩支持" 或者"不是JPEF文件:以0x4c 0x49

开头

有没有人知道这里可能出现什么问题? 谢谢你的帮助:)

0 个答案:

没有答案