[Tips][PictureBox] イメージを回転/反転させる

PictureBoxコントロールのImageプロパティが持つRotateFlipメソッドを使用すると、表示している画像を回転/反転させることができます。

RotateFlipメソッドにはRotateFlipType列挙体の値を指定します。

RotateFlipType列挙体
メンバ名 説明
Rotate180FlipNone 反転せずに 180 度回転する
Rotate180FlipX 180 度回転してから、水平方向に反転する
Rotate180FlipXY 180 度回転してから、水平方向と垂直方向に反転する
Rotate180FlipY 180 度回転してから、垂直方向に反転する
Rotate270FlipNone 反転せずに 270 度回転する
Rotate270FlipX 270 度回転してから、水平方向に反転する
Rotate270FlipXY 270 度回転してから、水平方向と垂直方向に反転する
Rotate270FlipY 270 度回転してから、垂直方向に反転する
Rotate90FlipNone 反転せずに 90 度回転する
Rotate90FlipX 90 度回転してから、水平方向に反転する
Rotate90FlipXY 90 度回転してから、水平方向と垂直方向に反転する
Rotate90FlipY 90 度回転してから、垂直方向に反転する
RotateNoneFlipNone 回転も反転も行わない
RotateNoneFlipX 回転せずに水平方向に反転する
RotateNoneFlipXY 回転せずに水平方向と垂直方向に反転する
RotateNoneFlipY 回転せずに垂直方向に反転する

下記は画像を回転/反転させる例です。

VBの例

' フォームロード時の処理
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    'イメージの表示方法を設定(サイズ比率を維持したまま拡大/縮小)
    PictureBox1.SizeMode = PictureBoxSizeMode.Zoom

    'PictureBoxにイメージを読み込む
    PictureBox1.Image = Image.FromFile("Tulips.jpg")
End Sub

' 画像を上下に反転する
Private Sub btnRotateNoneFlipY_Click(sender As System.Object, e As System.EventArgs) Handles btnRotateNoneFlipY.Click
    '★★★画像を上下反転する★★★
    PictureBox1.Image.RotateFlip(RotateFlipType.RotateNoneFlipY)
    PictureBox1.Refresh()
End Sub

' 画像を左右に反転する
Private Sub btnRotateNoneFlipX_Click(sender As System.Object, e As System.EventArgs) Handles btnRotateNoneFlipX.Click
    '★★★画像を左右反転する★★★
    PictureBox1.Image.RotateFlip(RotateFlipType.RotateNoneFlipX)
    PictureBox1.Refresh()
End Sub

' 90度回転する
Private Sub btnRotate90FlipNone_Click(sender As System.Object, e As System.EventArgs) Handles btnRotate90FlipNone.Click
    '★★★画像を90度回転する★★★
    PictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipNone)
    PictureBox1.Refresh()
End Sub

C#の例

// フォームロード時の処理
private void Form2_Load(object sender, EventArgs e)
{
    // イメージの表示方法を設定(サイズ比率を維持したまま拡大/縮小)
    pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;

    // PictureBoxにイメージを読み込む
    pictureBox1.Image = Image.FromFile("Tulips.jpg");
}

// 画像を上下に反転する
private void btnRotateNoneFlipY_Click(object sender, EventArgs e)
{
    // ★★★画像を上下反転する★★★
    pictureBox1.Image.RotateFlip(RotateFlipType.RotateNoneFlipY);
    pictureBox1.Refresh();
}

// 画像を左右に反転する
private void btnRotateNoneFlipX_Click(object sender, EventArgs e)
{
    // ★★★画像を左右反転する★★★
    pictureBox1.Image.RotateFlip(RotateFlipType.RotateNoneFlipX);
    pictureBox1.Refresh();
}

// ★★★画像を90度回転する★★★
private void btnRotate90FlipNone_Click(object sender, EventArgs e)
{
    // 画像を90度回転する
    pictureBox1.Image.RotateFlip(RotateFlipType.Rotate90FlipNone);
    pictureBox1.Refresh();
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください