トップ  >  サンプルソース  >  Bitmap拡大/縮小/回転(C#/VB.NET)

Bitmap拡大/縮小/回転(C#/VB.NET)

2010年11月11日

Bitmap(画像)を拡大/縮小/回転するサンプル(ソース/コード)です。
処理の流れは、Bitmapのコピー作成、Graphics取得、画像変換です。

Bitmap関係のその他のサンプルはこちらです。
画像印刷(C#/VB.NET)
画像PDF出力(C#/VB.NET)

その他のBitmap関係サンプルはこちら「Bitmap関係」です。

また、遅いBitmap表示を高速表示するサンプルも役立つと思いますので紹介して置きます。Bitmap処理を高速化するサンプル(C#/VB.NET)

' -----------------------------------------------------------
' Bitmap(画像)を拡大/縮小/回転するサンプル(VB.NET/VS2005)
Private bmp As Bitmap
Private bai As Double = 1
Private ang As Double = 0

' Bitmap(画像)表示
Private Sub Form1_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load

Dim tmp As Bitmap = New Bitmap("d:\temp\keigo.jpg")
bmp = New Bitmap(tmp, _
PictureBox1.Width, PictureBox1.Height)
tmp.Dispose()

PictureBox1.Image = bmp
End Sub

' Bitmap(画像)拡大/縮小
Private Sub Button1_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles Button1.Click

Dim bmp2 As Bitmap = New Bitmap(bmp.Width, bmp.Height)
Dim g As Graphics = Graphics.FromImage(bmp2)
g.Clear(Color.Black)

bai = bai * 1.1
Dim w As Integer = bmp.Width * bai ' 横サイズ
Dim h As Integer = bmp.Height * bai ' 縦サイズ

g.DrawImage(bmp, 0, 0, w, h)
g.Dispose()

PictureBox1.Image = bmp2
End Sub

' Bitmap(画像)回転
Private Sub Button2_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles Button2.Click

Dim bmp2 As Bitmap = New Bitmap(bmp.Width, bmp.Height)
Dim g As Graphics = Graphics.FromImage(bmp2)
g.Clear(Color.Black)

Dim x As Integer = bmp.Width / 2 ' 中心座標X
Dim y As Integer = bmp.Height / 2 ' 中心座標Y
ang = ang + 10

g.TranslateTransform(-x, -y)
g.RotateTransform(ang, _
System.Drawing.Drawing2D.MatrixOrder.Append)
g.TranslateTransform(x, y, _
System.Drawing.Drawing2D.MatrixOrder.Append)

g.DrawImageUnscaled(bmp, 0, 0)
g.Dispose()

PictureBox1.Image = bmp2
End Sub
' -----------------------------------------------------------

// ----------------------------------------------------------
// Bitmap(画像)を拡大/縮小/回転するサンプル(C#.NET/VS2005)
private Bitmap bmp;
private Double bai = 1;
private Double ang = 0;

// Bitmap(画像)表示
private void Form1_Load(object sender, EventArgs e)
{
Bitmap tmp = new Bitmap(@"d:\temp\keigo.jpg");
bmp = new Bitmap(tmp,
pictureBox1.Width, pictureBox1.Height);
tmp.Dispose();

pictureBox1.Image = bmp;
}

// Bitmap(画像)拡大/縮小
private void button1_Click(object sender, EventArgs e)
{
Bitmap bmp2 = new Bitmap(bmp.Width, bmp.Height);
Graphics g = Graphics.FromImage(bmp2);
g.Clear(Color.Black);

bai = bai * 1.1;
Double w = bmp.Width * bai; // 横サイズ
Double h = bmp.Height * bai; // 縦サイズ

g.DrawImage(bmp, 0, 0, (float)w, (float)h);
g.Dispose();

pictureBox1.Image = bmp2;
}

// Bitmap(画像)回転
private void button2_Click(object sender, EventArgs e)
{
Bitmap bmp2 = new Bitmap(bmp.Width, bmp.Height);
Graphics g = Graphics.FromImage(bmp2);
g.Clear(Color.Black);

int x = bmp.Width / 2; // 中心座標X
int y = bmp.Height / 2; // 中心座標Y
ang = ang + 10;

g.TranslateTransform(-x, -y);
g.RotateTransform((float)ang,
System.Drawing.Drawing2D.MatrixOrder.Append);
g.TranslateTransform(x, y,
System.Drawing.Drawing2D.MatrixOrder.Append);

g.DrawImageUnscaled(bmp, 0, 0);
g.Dispose();

pictureBox1.Image = bmp2;
}
// ----------------------------------------------------------
スポンサーサイト

演算子 四則/論理/ビット(C#/VB.NET) | トップページへ戻る | 迷惑(スパム)メール撲滅

このページのトップに戻る

コメント

名前
題名
メールアドレス
WEBサイト
 
コメント
パスワード
  管理者にだけ表示を許可する

このページのトップに戻る

トラックバック

このページのトップに戻る