Я пытаюсь заставить libtiff считывать файлы tiff, состоящие из одной полосы размером примерно 500x500 32-битных пикселей, используя метод TIFFReadScanline (tif, buf, row) .Это дает мне строки tdata_t (??).
Как я могу записать этот буфер в виде текстового файла или получить доступ к значениям пикселей (должно быть удвоено)?
Мой код выглядит так:
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;
}
В последней строке я пытаюсь записать весь буфер в текстовый файл, но нет двойных значений, кроме Hex-значений.Когда я заменяю буфер tdata_t символьным буфером, появляется символ ASCII.Я думаю, мне следует преобразовать буфер tdata_t в двойной или символьный буфер, но как?
Это не должен быть порядок байтов, поскольку libtiff обрабатывает это автоматически, я думаю.
Любые предложения приветствуются!Спасибо за помощь, желаю всем хороших выходных!