C# Windows FormsアプリケーションでImageの表示サイズを縮小したい場合、主に PictureBox コントロールのプロパティを使用します。
最も簡単な方法:PictureBoxのSizeModeプロパティを使用する
PictureBoxコントロールには、表示する画像のサイズ調整方法を制御する SizeMode プロパティがあります。このプロパティを変更することで、簡単に画像の表示サイズを調整できます。
- PictureBoxコントロールを選択します。
- プロパティウィンドウを開きます。 (通常はVisual Studioの右側に表示されています。表示されていない場合は、メニューバーの「表示」→「プロパティウィンドウ」を選択します。)
- SizeModeプロパティを探して、ドロップダウンリストから適切なオプションを選択します。
利用できる主なSizeModeオプションは以下の通りです。
- Normal: 画像を元のサイズで表示します。PictureBoxのサイズよりも大きい場合は、画像の一部が切り取られて表示されます。
- StretchImage: 画像をPictureBoxのサイズに合わせて拡大または縮小して表示します。縦横比は維持されません。
- AutoSize: PictureBoxのサイズを画像のサイズに合わせて自動的に調整します。
- CenterImage: 画像をPictureBoxの中央に表示します。PictureBoxのサイズよりも大きい場合は、画像の一部が切り取られて表示されます。
- Zoom: 画像の縦横比を維持したまま、PictureBoxにできるだけ大きく表示します。PictureBoxのサイズよりも大きい場合は、全体が表示されるように縮小されます。PictureBoxのサイズよりも小さい場合は、拡大されます。縮小表示したい場合は、このオプションが適していることが多いです。
例:SizeModeをZoomに設定するコード
// PictureBoxコントロールの名前をpictureBox1と仮定
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
SizeModeプロパティをコードから設定する方法
フォームのロード時や、画像をPictureBoxに設定する際に、コードからSizeModeプロパティを設定することもできます。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += Form1_Load;
}
private void Form1_Load(object sender, EventArgs e)
{
// 画像を読み込む
Image image = Image.FromFile("path/to/your/image.jpg");
// PictureBoxに画像を設定
pictureBox1.Image = image;
// SizeModeをZoomに設定して表示サイズを縮小
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
}
}
補足:Paintイベントで描画サイズを制御する方法 (より高度な場合)
より細かく表示サイズを制御したい場合は、PictureBoxの Paint イベントを処理し、Graphicsオブジェクトの DrawImage メソッドを使用して、指定したサイズで画像を描画する方法もあります。
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
if (pictureBox1.Image != null)
{
// 描画先のRectangleを指定 (PictureBoxのクライアント領域)
Rectangle destRect = new Rectangle(0, 0, pictureBox1.Width / 2, pictureBox1.Height / 2); // 例:半分のサイズで描画
// 元の画像のRectangleを指定
Rectangle srcRect = new Rectangle(0, 0, pictureBox1.Image.Width, pictureBox1.Image.Height);
// Graphicsオブジェクトを使って画像を描画
e.Graphics.DrawImage(pictureBox1.Image, destRect, srcRect, GraphicsUnit.Pixel);
}
}
この方法では、destRect
で描画先のサイズと位置を指定することで、表示サイズを自由に制御できます。ただし、SizeModeプロパティを使用するよりも複雑になります。
ほとんどの場合、PictureBoxのSizeModeプロパティを適切に設定することで、Imageの表示サイズを簡単に縮小できます。特に、縦横比を維持したまま縮小したい場合は PictureBoxSizeMode.Zoom
を試してみてください。
0 件のコメント:
コメントを投稿