0

我在 FreeImage 上苦苦挣扎,文档对我帮助不大!

我需要使用 C# 在图片框中显示 tif、exr 或 HDR 图像,但我没有成功,我想知道我该怎么做...我收到错误:只有 FIT_BITMAP 类型的位图可以转换。...

任何人都可以帮我吗?我想我必须将 tiff 转换为位图,但我已经尝试过,但我不知道我应该怎么做......这是我的代码:

    FIBITMAP imageToDisplay = new FIBITMAP();
    imageToDisplay = FreeImage.Load(FREE_IMAGE_FORMAT.FIF_TIFF, i, FREE_IMAGE_LOAD_FLAGS.TIFF_CMYK);
    Bitmap bitmap = FreeImage.GetBitmap(imageToDisplay);
    pictureBox.Image = (Image)new Bitmap(bitmap);            
4

1 回答 1

0

为了显示 TIFF,PictureBox.Image需要一个System.Drawing.Image对象 - 并System.Drawing.Image.FromFile()支持 TIFF 图像。

我看不出有任何需要在这里涉及任何第三方依赖项。这一切都内置在框架中。

pictureBox.Image = Image.FromFile(someImage);

如果您的 TIFF 不是文件(例如,如果它只是一个字节数组或 MemoryStream) - 也没关系 - 使用Image.FromStream().

对于不受支持的文件格式,您的工作是将它们转换为System.Drawing.Image. 如果这是不可能的,您可能无法使用该PictureBox控件来完成这项工作。

也许您的问题的标题应该是“从 EXR 文件构造图像对象”或“在 Windows 窗体中显示 EXR 文件”或类似名称。

于 2013-02-11T16:37:33.420 回答