首先我在图片框中加载图片。然后我测量其中的区域并创建一个新图片。现在我想在面板中加载图像并通过鼠标绘制一条线。 我加入了我的表格:
private Image imag;
我也加入了我的项目:
private void drawP_Paint(object sender, PaintEventArgs e)
{
Graphics g = drawP.CreateGraphics();
g.DrawImage(imag, new Point(0,0));
}
我在一个函数中设置了图像:
imag = (Image)bm;
// or
imag = picturebox1.Image; // the made picture
drawP.Invalidate();
但是在运行项目时没有出现任何内容。
答案 0 :(得分:2)
您应该将代码放在面板Paint
事件中。
private void panel1_Paint(object sender, PaintEventArgs e)
{
Image imag = Image.FromFile(filename);
e.Graphics.DrawImage(imag, new Point(0,0));
}
这使您确保每次重新绘制面板(在因任何原因无效后),您的图像都可见。
答案 1 :(得分:1)
尝试将其更改为:
private void drawP_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawImage(imag, new Point(0,0));
}
此外,根据您的评论,听起来您可能没有连接事件。例如:
public Form1()
{
InitializeComponent();
drawP.Paint += drawP_Paint;
}
在该图片上画一条线:
private void button1_Click(object sender, EventArgs e) {
using (Graphics g = Graphics.FromImage(imag)) {
g.DrawLine(Pens.Red, new Point(0, 0), new Point(32, 32));
}
drawP.Invalidate();
}