DotImage Photo Pro コンポーネントはうまく機能しましたが、それを使用して生ファイルからプレビュー イメージを抽出する際に問題がありました。また、このプロジェクトの予算外です。
しかし、ここで Paint.NET 用の RAW プラグインのコードを見つけたので、私のニーズに合わせるのは非常に簡単でした。プラグインは DCRaw 実行可能ファイル ussignを実行し、ストリームProcess.Start
からその出力を読み取ります。StandardOutput
非常にシンプルで高速です!:-)
編集:
プラグインへのリンクはもう機能しませんが、画像を抽出するために使用したコードは次のとおりです。次のコードは、raw ファイルに保存されている jpg プレビューを抽出します。完全なイメージが必要な場合は、-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/