如何在C#中读取32位TIFF文件?

时间:2015-01-16 19:11:28

标签: c# arcgis rgba libtiff.net

我正在尝试加载32位TIFF并读取像素的RGBA值。我尝试过使用LibTiff.Net,但是在尝试加载时遇到了这个错误:

“抱歉,无法处理32位样本的图像”

有谁知道在C#中实现这一目标的方法?我不想减少像素深度,因为这些图像包含将用于科学计算的数据。

感谢您的帮助。

编辑: 例如:

var stream = File.Open(fileName, FileMode.Open);
TiffBitmapDecoder tiffDecoder = new TiffBitmapDecoder(  stream,
                                    BitmapCreateOptions.PreservePixelFormat | BitmapCreateOptions.IgnoreImageCache,
                                    BitmapCacheOption.None);
stream.Dispose();

BitmapSource bmpSource = tiffDecoder.Frames[0];

byte[] data;
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmpSource));
using (MemoryStream ms = new MemoryStream())
{
    encoder.Save(ms);
    data = ms.ToArray();
}

这给我以下错误:

{"The handle is invalid. (Exception from HRESULT: 0x80070006 (E_HANDLE))"}

在线

encoder.Frames.Add(BitmapFrame.Create(bmpSource));

0 个答案:

没有答案