在 .NET 中加载 Canon .CR2 文件

Dar*_*ter 4 c# bitmap image-processing

我正在尝试使用 C# 处理 Canon RAW .CR2 文件。我的代码如下:

BitmapDecoder bmpDec = BitmapDecoder.Create(new Uri(origFile), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
BitmapEncoder bmpEnc = new BmpBitmapEncoder();
bmpEnc.Frames.Add(bmpDec.Frames[0]);
Stream ms = new MemoryStream();
bmpEnc.Save(ms);
Image srcImage = Bitmap.FromStream(ms);
Run Code Online (Sandbox Code Playgroud)

前几行似乎运行顺利,但是该行

bmEnc.Save(ms);
Run Code Online (Sandbox Code Playgroud)

只是挂起而没有完成,也没有引发任何异常。

有人在这方面取得过成功吗?

P63*_*5uk 6

我知道这是一个旧线程,但我发现了一个很好的易于使用的库(Magick.NET)。

如何进行转换:

using (MagickImage image = new MagickImage("StillLife.CR2"))
{
    image.Write("StillLife.jpg");
}
Run Code Online (Sandbox Code Playgroud)

https://github.com/dlemstra/Magick.NET/blob/master/docs/ReadRawImageFromCamera.md

nuget包安装详细信息:

Install-Package Magick.NET-Q16-AnyCPU
Run Code Online (Sandbox Code Playgroud)

https://github.com/dlemstra/Magick.NET