正在读取c#中的原始图像文件

本文关键字:原始 图像 文件 读取 | 更新日期: 2023-09-27 18:25:37

在没有安装编解码器的情况下,如何解码/打开.CR2或.NEF和.ARW等原始图像文件,比如lightroom打开原始文件?我的代码如下:

if (fe == "CR2" | fe == "NEF" | fe == "ARW" )
{
    BitmapDecoder bmpDec = BitmapDecoder.Create(new Uri(op.FileName), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
    BitmapSource bsource = bmpDec.Frames[0];
    info_box.Content = fe;
    imgControl.Source = bsource;
}

这只适用于安装的原始编解码器,不适用于ARW格式

正在读取c#中的原始图像文件

如果没有安装编解码器,则必须读取原始图像数据,并将其转换为位图或可以读取的其他格式。为了做到这一点,您需要一份格式规范的副本,这样您就可以编写读取二进制数据的代码。

我强烈建议获得一个编解码器,或者找到某人已经编写的可以处理转换的代码。但是,如果您真的想尝试编写图像格式转换代码,那么您的首要任务就是获得格式规范。

在谷歌上快速搜索[CR2图像格式],就会发现这是佳能CR2规格。说实话,我不知道这有多准确,但看起来很合理。使用搜索引擎一段时间可能会发现其他格式的类似文档。

请注意:编写这些转换可能是一项非常困难的任务。再次,我建议您找到一些可以利用的现有代码。

如果你坚持不安装编解码器,那么你最好的选择可能是:

http://www.cybercom.net/~dcffin/dcraw/
-用C编写,支持大多数相机

http://sourceforge.net/projects/dcrawnet/
-显然是DCRAW到C#的(部分?)端口,但项目似乎不是活动的