DotImage Photo Pro 组件运行良好,但我在使用它从原始文件中提取预览图像时遇到了问题。这也超出了我对这个项目的预算。
但是,我在这里找到了 Paint.NET 的 RAW 插件的代码,它很容易适应我的需求。该插件运行 DCRaw 可执行文件 ussign并从流中Process.Start
读取其输出。StandardOutput
相当简单和快速!:-)
编辑:
该插件的链接不再起作用,但这是我用来提取图像的代码。以下代码提取存储在原始文件中的 jpg-preview。如果你想要完整的图像,你应该删除 -e 参数。但请注意,对于某些相机,您将获得 GDI+ 无法读取的 ppm 图像。
public Stream GetImageData(string inputFile, string dcRawExe)
{
var startInfo = new ProcessStartInfo(dcRawExe)
{
Arguments = "-c -e \"" + inputFile + "\"",
RedirectStandardOutput = true,
UseShellExecute = false
};
var process = Process.Start(startInfo);
var image = Image.FromStream(process.StandardOutput.BaseStream);
var memoryStream = new MemoryStream();
image.Save(memoryStream, ImageFormat.Png);
return memoryStream;
}
此外,您还需要一份 DCRaw 的副本。我使用了这个站点的 DcrawMS.exe:http: //www.insflug.org/raw/Downloads/