画像の読み込み
最終更新:
atachi
WPFではBitmapImageまたはBitmapFrameを使って画像を読み込みます。
このBitmapImageやBitmapFrameには、ローカルディスクからだけでなくインターネット上の画像もURLを指定することで自動的にダウンロードを行い画像を取得することができます。
BitmapImageやBitmapFrameはWPFアプリケーションへ簡単に画像を表示することを目的とした設計となっています。
よって、画像自体に処理を施すことはできません。(例えば、画像にテキストを入れるなどの処理は、このクラスを使って行うことはできない)
BitmapImage image = new BitmapImage();
image.BeginInit();
image.UriSource = new Uri(@"/resources/assets/image/folder.png");
image.EndInit();
// MXMLのImage(System.Windows.Controls.Image)へ画像を表示
myImage.source = image;
BitmapImageとBitmapFrame
この2つのクラスはどちらも画像をファイルまたはインターネット上から取得することができますが、この2つのクラスには微妙な違いがあるので注意が必要です。
取得する画像ファイルを示すパスで相対パスを使用する際、BitmapImageはアプリケーションリソースをカレントディレクトリとした相対パスを指定する必要があり、 BitmapFrameはファイルシステムとしての相対パスを指定しなければなりません。
また、いずれのクラスでもローカルディスクからファイルを読み込んだ場合、そのファイルへのアクセス権をロックしてしまいます。オブジェクトのインスタンスが生存している間は、他のアプリケーションからそのファイルへの書き込みモードでのアクセスができなくなるため注意が必要です。