(如转载请注明出处)
花了imagesoft一个上午时间,终于改好了,问题不在libtiff,而是opencv的问题,发现问题后在网上搜了一下,找不到原因,而同样的图象在freeimage和cximage都是能打开的。都是使用libtiff,没道理呀,下载最新的libtiff,覆盖进去重新生成dll,还是不行;这也难不倒我,从freeimage提取libtiff,覆盖,编译,运行,仍然不行。我晕。没办法,上法宝,跟踪调试,如此这般,终于找到原因了,个中苦乐就不说了,直接说怎么修改好了。
修改grfmt_tiff.cpp
1) bool TiffDecoder::readHeader()
没具体分析,反正是compression不对,直接注释掉了,有时间再来慢慢想
if( TIFFRGBAImageOK( tif, errmsg ) &&
TIFFGetField( tif, TIFFTAG_IMAGEWIDTH, &width ) &&
TIFFGetField( tif, TIFFTAG_IMAGELENGTH, &height ) &&
TIFFGetField( tif, TIFFTAG_PHOTOMETRIC, &photometric )/* &&
(!TIFFGetField( tif, TIFFTAG_COMPRESSION, &compression ) ||
(compression != COMPRESSION_L