下面的代码说明了我面临的问题。如果我用
加载一个 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/