在加载到图片框中的图像上绘图
本文关键字:图像 绘图 加载 | 更新日期: 2023-09-27 18:05:15
我已经像这样将一辆汽车的图像加载到图片框中。
private void btn_LoadPattern_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "JPEG Files|*.jpg";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
pictureBox1.ImageLocation = openFileDialog.FileName;
}
}
我想在这个图像上画一个矩形,并在同一个表单上添加箭头按钮,这样用户就可以移动矩形来指示在图片上注册板的位置。
问题是,如果我开始画矩形,它被汽车图片覆盖。另一个问题是,当用户点击右/左/上/下移动按钮时,如何在新位置重新绘制矩形。
在这种情况下,我不会使用PictureLocation
,我会这样做:
pictureBox1.BackgroundImage = Image.FromFile(openFileDialog.FileName);
现在,如果你在PictureBox
中画一个矩形,它应该画在汽车图像上。
其次,利用PictureBox
的Paint
事件。
像这样的东西应该能奏效。
Rectangle MyRectangle;
private void pictureBox1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
// Create a local version of the graphics object for the PictureBox.
Graphics g = e.Graphics;
g.DrawRectangle(Pens.Black, MyRectangle);
}
和你应该能够处理按键修改MyRectangle
根据箭头键,然后调用pictureBox1.Invalidate()
有Paint
事件在新的位置重新绘制矩形