Windows FormsアプリのPictureBoxのイメージの指定方法のそれぞれのサンプル

2023年2月21日

Windows FormsのPictureBoxコントロールには、イメージの表示に関連する4つの異なるプロパティがあります。

コンストラクタで指定

コンストラクタによって画像を設定することができます。以下のように、Imageクラスのコンストラクタに画像ファイルのパスを渡すことで、画像を読み込むことができます。

pictureBox1.Image = new Image(@"C:\Images\example.jpg");

Imageプロパティ

PictureBoxに表示する画像を指定します。イメージは、アプリケーションのリソースからロードされることも、実行時にファイルから読み込まれることもあります。例えば、以下のようにして、Imageプロパティを使用してPictureBoxにイメージを指定することができます。

pictureBox1.Image = Image.FromFile(@"C:\Images\example.jpg");

ImageLocationプロパティ

ファイルからPictureBoxに画像を読み込む場合、このプロパティを使用してファイルの場所を指定します。例えば、以下のようにして、ImageLocationプロパティを使用してPictureBoxにイメージを指定することができます。

pictureBox1.ImageLocation = @"C:\Images\example.jpg";

InitialImageプロパティ

PictureBoxがイメージを読み込む前に表示されるデフォルトのイメージを指定します。例えば、以下のようにして、InitialImageプロパティを使用してPictureBoxにデフォルトのイメージを指定することができます。

pictureBox1.InitialImage = Image.FromFile(@"C:\Images\loading.gif");

ErrorImageプロパティ

PictureBoxがイメージを読み込めなかった場合に表示されるイメージを指定します。例えば、以下のようにして、ErrorImageプロパティを使用してPictureBoxにエラー時のイメージを指定することができます。

pictureBox1.ErrorImage = Image.FromFile(@"C:\Images\error.png");

FromFileメソッド

ファイルから画像を読み込むための静的なメソッドも提供されています

pictureBox1.Image = Image.FromFile(@"C:\Images\ example.jpg");

FromStreamメソッド

さらに、ストリームから画像を読み込むためのオーバーロードもあります

pictureBox1.Image = Image.FromStream(stream);

ここで、streamは画像が含まれるストリームを表します。たとえば、ファイルからストリームを作成することもできます。

FileStream fileStream = new FileStream(@"C:\Images\ example.jpg", FileMode.Open);
pictureBox1.Image = Image.FromStream(fileStream);

なお、Windows FormsのImageクラスは、GDI+を使用しているため、大きな画像を読み込む場合はメモリの使用量に注意してください。大きな画像を処理する場合は、ストリームを使用して逐次読み込むなどの工夫が必要となる場合があります。