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

2023年8月7日

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

コンストラクタで指定

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

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

Imageプロパティ

デザイナーを使用する方法

  1. フォームデザイナーでPictureBoxコントロールを配置します。
  2. プロパティウィンドウでImageプロパティに画像ファイルのパスを直接入力します。

リソースファイルを使用する方法

  1. まず、プロジェクト内に画像ファイルを追加し、リソースとして登録します。
  2. フォームデザイナーでPictureBoxなどのコントロールを配置します。
  3. PictureBoxのImageプロパティを変更し、リソースから画像を選択します
pictureBox1.Image = Properties.Resources.MyImage; // MyImageはリソース名

ファイルパスを使用する方法

  1. 画像ファイルをプロジェクト内または外に保存します。
  2. PictureBoxなどのコントロールを配置します。
  3. コードで画像ファイルのパスを使用してImageを読み込みます。
pictureBox1.Image = Image.FromFile(@"C:\Images\example.jpg");

ビットマップを使用する方法

  1. 画像ファイルをプロジェクト内または外に保存します。
  2. PictureBoxなどのコントロールを配置します。
  3. コードでビットマップを作成し、そのビットマップをImageに割り当てます。
Bitmap bmp = new Bitmap(@"C:\Images\example.jpg");
pictureBox1.Image = bmp;

リソースマネージャーを使用する方法

  1. プロジェクトエクスプローラーで「プロパティ」ウィンドウを開き、[リソース]セクションに移動します。
  2. 画像ファイルを追加し、リソースマネージャーを介してアクセスします。
  3. コード内でリソースマネージャーを使用して画像を読み込みます。
pictureBox1.Image = Properties.Resources.MyImage; // MyImageはリソース名

ImageLocationプロパティ

デザイナーを使用する方法

  1. フォームデザイナーでPictureBoxコントロールを配置します。
  2. プロパティウィンドウでImageLocationプロパティに画像ファイルのパスを直接入力します。

リソースファイルを使用する方法

  1. まず、プロジェクト内に画像ファイルを追加し、リソースとして登録します。
  2. フォームデザイナーでPictureBoxなどのコントロールを配置します。
  3. PictureBoxのImageプロパティを変更し、リソースから画像を選択します
pictureBox1.ImageLocation = "リソース名";

ファイルパスを使用する方法

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

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

ユーザーが指定する方法

  1. ユーザーに画像ファイルのパスを選択させるためのOpenFileDialogなどのダイアログボックスを表示します。
  2. ユーザーが選択したパスを取得し、ImageLocationに設定します
using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
        pictureBox1.ImageLocation = openFileDialog.FileName;
    }
}

これらの方法を使用して、ImageLocationプロパティに画像を代入することができます。選択肢はアプリケーションの要件に合わせて最適な方法を選択することが重要です。

InitialImageプロパティ

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

次のような代入式の他、上記のImageプロパティと同じ方法で代入ができます

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+を使用しているため、大きな画像を読み込む場合はメモリの使用量に注意してください。大きな画像を処理する場合は、ストリームを使用して逐次読み込むなどの工夫が必要となる場合があります。