System.Windows.Media.Imaging.BitmapImageでサポートされているイメージ形式のリストを取得するにはどうすればよいですか?BitmapImageからサポートされているイメージ形式を取得する
私はC#WPFで簡単な画像処理ツールを書いています。 BitmapImageクラスは、さまざまな形式からデコードできるので、より有用なビットマップクラスの1つです。
特に、自分のコンピュータでNEF(NikonのRAW形式)を開くことができます。 BitmapImageは、他のメーカーのさまざまなRAW形式を開くことができる可能性があります。私はこの機能を利用したいと考えています。
BitmapImageとして開くことができるすべての形式がわからないので、私は現在、try/catchを使用して、ユーザーが開こうとするすべてのファイルからBitmapImageを構築しようとしています。これは明らかに最も効率的な方法ではありません。
私が知る限り、BitmapImageはBitmapSourceから継承しており、BitmapSourceはwhich files it can open by looking on the user's system for available codecsを決定します。したがって、コーデックの可用性はマシンによって異なるため、サポートされているフォーマットのリストをプログラムにハードコードすることはできません。これらのサポートされているフォーマットがユーザーのマシン上でどのようなものかを確認する方法が必要です。
System.Drawingにthis methodが見つかりました。これにより、サポートされているファイル拡張子のリストを持つサポートされているコーデックのリストが返され、Systems.Windows.Media.Imagingの同等の機能が必要なものになります。
[この回答](http://stackoverflow.com/a/8343497/1136211)が面白いかもしれません。 – Clemens