0
我試圖讓libtiff讀出包含一個大約500x500 32位像素的條帶的tiff文件,使用方法TIFFReadScanline(tif,buf,row)。這給了我tdata_t(??)行。Libtiff:我如何獲得像素值或如何將TIFF文件轉換爲文本文件
如何寫出這個緩衝區爲文本文件或訪問像素值(應該是雙打)?
我的代碼如下所示:
TIFF* tif = TIFFOpen(c_str2, "r");
uint32 imagelength;
tdata_t buf;
uint32 row;
TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength);
buf = _TIFFmalloc(TIFFScanlineSize(tif));
for (row = 0; row < imagelength; row++){
TIFFReadScanline(tif, buf, row);
myfile << buf << endl;
}
在最後一行中我儘量寫全緩衝寫出到一個文本文件,但沒有雙值,但十六進制值。當我用char緩衝區替換tdata_t緩衝區時,會出現ASCII符號亂碼。我想我應該將tdata_t緩衝區轉換爲double或char緩衝區,但是如何?
它不應該是字節順序,因爲libtiff自動處理這個問題,我想。
歡迎任何建議!感謝您的幫助,祝您週末愉快!
感謝您的提示浮!現在我直接將緩衝區初始化爲浮點緩衝區,並且工作正常。 – Michael 2011-02-07 12:40:08