问题描述
我正在尝试使用 C# 处理 Canon RAW .CR2 文件.我的代码如下:
I am trying to process Canon RAW .CR2 files using C#. My code is as follows:
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);
前几行似乎运行顺利,但行
The first few lines seem to run without a hitch, but the line
bmEnc.Save(ms);
只是挂起,没有完成,也没有引发任何异常.
just hangs without completing and without raising any exception.
有人成功了吗?
推荐答案
我不相信 BitmapDecoder 理解 .CR2.到目前为止,它不是传统的图像格式,因为它包含原始拜耳传感器图像(每个像素一种颜色),而不是标准图像.
I don't believe BitmapDecoder understands .CR2. It is not a conventional image format by far, as it contains the raw bayer-sensor image (one color per pixel), not a standard image.
如果你想转换CR2和其他camera raw格式,你应该看看DCRaw:http://www.cybercom.net/~dcoffin/dcraw/ 或 libraw(基于 dcraw,作为库友好):http://www.libraw.org/
If you want to convert CR2 and other camera raw formats, you should look at DCRaw: http://www.cybercom.net/~dcoffin/dcraw/ or libraw (based on dcraw, friendly as a library): http://www.libraw.org/
这篇关于在 .NET 中加载佳能 .CR2 文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!