Visual StudioのC#やVisualBasicで画像を扱うのに便利なツールがPictureBoxです。
ここではPictureBoxの使い方を紹介していきます。
PictureBoxとは?
画像の表示のために用意されています。
bmp、PNG、JPEGなどの画像ファイルをロードするだけでなく、回転したりサイズにアジャストさせて表示させることができます。
保存ルーチンもあるので、PictureBox上で加工してそれをファイルに出力するというときにも便利です。
PictureBoxの使い方
画像ファイルを表示する
ツールボックスのPictureBoxを選んでフォーム上にドラッグして配置します。
配置したPictureBoxのプロパティでImageが画像データとなります。
Imageプロパティで「...」を選ぶとリソース選択が出てきます。
「ローカルリソース>インポート」でダイアログから画像を選択します。
JPEGやGIF、PNG、BMPなどに対応しています。
これでPictureBox内に画像が表示されました。
動画を表示する
OpenCV、aForgeなどのライブラリを使えば動画をC#で取り扱うことができます。
動画の表示部分としてPictureBoxを使うこともできます。
詳しくは以下参照ください。
画像をフィットさせる
画像を指定しただけでは、元のサイズのままです。
SizeModeプロパティを「StretchImage」にすると、...
配置したPictureBoxのサイズにあわせて画像を表示します。
サイズはそのままで中心部から画像を置くには「CenterImage」にセットします。
縦横比率をキープした状態でPictureBoxにあわせるには「Zoom」を選びます。
プログラムで画像を表示する
ボタンを押すとPictureBoxに画像を表示するプログラムを書くには、
private void Button1_Click(object sender, EventArgs e)
{
pictureBox1.ImageLocation = @"C:\_work/face1.bmp";
}
のように書きます。「C:\_work/face1.bmp」が画像のパスです。
成功すると、このように画像ファイルがPictureBoxとして設定した場所に表示されるはずです。
上記の方法ではJPGやPNGなどのフォーマットの画像は表示できません。
そこで以下のような方法をとります。
システムで用意されているイメージ用のオブジェクトにいったんPNGを読み込んで、それをPictureBoxのイメージとしてセットするという方法です。
private void Button1_Click(object sender, EventArgs e)
{System.Drawing.Image img = System.Drawing.Image.FromFile(@"C:\_work/face1.png");
PictureBox1.Image = img;
}
画像の回転、反転
Bitmapオブジェクトは回転や反転用の機能もがあります。
Bitmap bmp = new Bitmap("sample.bmp");
bmp.RotateFlip(RotateFlipType.Rotate180FlipX);
PictureBox1.Image = bmp;
指定するときに「RotateNoneFlipY」なら垂直反転、「Rotate180FlipNone」なら180度回転で反転はナシとなります。
画像を保存する
PictureBoxでハンドリングするImageオブジェクトの書き出し機能を利用します。
String filename="test.png";
PictureBox1.Image.Save(filename, System.Drawing.Imaging.ImageFormat.Png);
PNG形式での書き出しはこのようになります。