ImageSource を BitmapImage に変換しようとして、この回答に取り組んでいます。ソースがビットマップである WPF キャンバスに Image コントロールがあり、このコントロールのソース プロパティを変数 (ImageSource になります) に抽出し、これを BitmapImage としてキャストします。
私のコードは以下の通りです:
ImageSource source = MyImage.Source;
BitmapImage image = (BitmapImage) source;
これは基本的にリンクされた回答と同じコードですが、2行目(キャストしようとしている場所)で次のランタイムエラーが発生しています:
タイプ 'System.Windows.Media.Imaging.BitmapFrameDecode' のオブジェクトをタイプ 'System.Windows.Media.Imaging.BitmapImage' にキャストできません。
私が推測する論理的な答えは、これは単に実行できないということですが、リンクされた答えは受け入れられ、好意的なコメントとイライラする4つの賛成票があります。.Net 4.5 で Visual Studio 2012 を使用しています。4.0、3.5、および 3.0 に対してコンパイルしようとしましたが、同じ問題が発生しています。
ここでAshuraの提案も試してみましたが、結果は単純に null です (結果の変数の値を null にキャストする代わりにasキーワードを使用するときのように)。
XAML では、Image コントロールのソース プロパティは*.bmpファイルです。最終的にこれを WriteableBitmap に取得しようとしていますが、BitmapImage を WriteableBitmap のコンストラクターに渡す必要があります。
だから私の質問は、私は何が間違っているのですか? ImageSource から BitmapImage に変換するにはどうすればよいですか?