[WPF] リソースの画像から Bitmap オブジェクトを生成する

WPF ではプロジェクトに追加したリソースへの参照は Uri により行えます。
例えば、ビューの Image コントロールへリソースの画像を表示する場合、次のように Source プロパティに画像リソースの Uri を設定します。

<Image x:Name="image" Source="Resources/Sample.bmp"/>

コードから設定する場合は、Uri から BitmapImage オブジェクトを生成し Source プロパティに設定します。

image.Source = new BitmapImage(new Uri("Resources/Sample.bmp", UriKind.Relative));

通常ならばこのどちらかで事足ります。
しかし、一部サードパティ製コンポーネントなどで、System.Drawing.Image のオブジェクトが必要になる場合があるようです。

■ アセンブリ参照の追加

System.Drawing 名前空間は標準では使えませんので、アセンブリの参照を追加します。
追加するアセンブリ「System.Drawing」

■ ストリームの取得

Application.GetResourceStream メソッドを使用して、Uri からリソース画像データのストリームを取得します。

var stream = Application.GetResourceStream(new Uri("Resources/Sample.bmp", UriKind.Relative)).Stream;

■ Bitmap オブジェクトの生成

Stream から Bitmap オブジェクトを生成します。

using (var stream = Application.GetResourceStream(new Uri("Resources/Sample.bmp", UriKind.Relative)).Stream)
{
    var bmp = new System.Drawing.Bitmap(stream);
}

これで、リソースの画像から Bitmap オブジェクトを生成することができました。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中