VB.netでPictureBoxに画像を表示して、
その上にマウスで、絵や図形を描いたり、文字を書くための、
ソースコードを紹介します。
まずは、FormにPictureBox、Button、OpenFileDialogを追加します。
Buttonのテキストプロパティは、「画像選択」にしました。
PictureBoxに表示する背景画像は、以下のものを用意しました。
以下がソースコードにです。
PictureBox上の画像に絵を描くソースコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
Public Class Form1 '変数 Private pbDrag As Boolean Private objG As Graphics Private piX As Integer Private piY As Integer Private Sub PictureBox1_MouseDown(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseDown pbDrag = True piX = e.X piY = e.Y End Sub Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseMove If pbDrag = False Then Exit Sub End If Dim objPen As New Pen(Color.Red, 5) objG.DrawLine(objPen, piX, piY, e.X, e.Y) PictureBox1.Refresh() piX = e.X piY = e.Y End Sub Private Sub PictureBox1_MouseUp(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseUp pbDrag = False End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '画像ファイルを選択する If OpenFileDialog1.ShowDialog = DialogResult.OK Then '画像をピクチャボックスのサイズに合わせる Dim bmp As New Bitmap(Image.FromFile(OpenFileDialog1.FileName), PictureBox1.Width, PictureBox1.Height) PictureBox1.Image = bmp objG = Graphics.FromImage(PictureBox1.Image) End If End Sub End Class |
今回は、赤い太線で描くようにしておきました。
画像をPictureBoxのサイズに合わせておかないと、
線が描画される位置がずれてしまいます。