c# - FreeImage.LoadFromStream 对 CR2 文件失败

标签 c# freeimage

下面的代码说明了我面临的问题。如果我用

加载一个 CR2 文件
var format = FREE_IMAGE_FORMAT.FIF_RAW;
retVal = FreeImage.LoadBitmap("AJ2A1447.cr2", ref format);

然后我成功加载了RAW文件。如果我使用类似的东西

using (Stream stream = new FileStream("AJ2A1447.cr2", FileMode.Open, FileAccess.Read))
{
  var format = FREE_IMAGE_FORMAT.FIF_RAW;
  freeImageHandle = FreeImage.LoadFromStream(stream, ref format);
  if (freeImageHandle.IsNull)
  {
    throw new Exception("Unable to load image from stream");
  }

  retVal = FreeImage.GetBitmap(freeImageHandle);
}

然后我不成功,因为 freeImageHandle 是空的。我使用 FileStream 进行测试,真正的代码将使用 MemoryStream。

关于为什么 LoadFromStream 失败的任何线索?

最佳答案

有很多 RAW 格式,我怀疑 FREE_IMAGE_FORMAT.FIF_RAW 是否知道如何解码 CR2。

http://en.wikipedia.org/wiki/Raw_image_format

尝试使用 windows 生成的位图和 jpg 来查看您的代码是否有效。

关于c# - FreeImage.LoadFromStream 对 CR2 文件失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18160785/

相关文章:

c++ - 如何使用 FreeImage 库将纹理加载到 OpenGL?

c# - 为什么默认枚举值是 0 而不是最小值?

C:制作图像映射缓冲区副本的最佳方法

c# - 在Installshield中添加msi的先决条件

c# - 最小起订量 - 如果类吞噬异常,如何验证方法没有被调用

c++ - #include <FreeImage.h> 未找到

c - FreeImage 包含在 c 中

c# - 反转字符串数组的元素

c# - 在 IFrame 中的 ASP.NET Core 2.0 应用程序中使用 session 状态