在面板上加载图像
本文关键字:加载 图像 | 更新日期: 2023-09-27 18:16:00
首先,我在图片框中加载了一张图片。然后我测量它的面积,并创建一个新的图片。现在我想在面板中加载图像并通过鼠标绘制一条线。我在表单中添加了:
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();
但是运行项目时什么也没有出现
你应该把你的代码放在面板Paint
事件
private void panel1_Paint(object sender, PaintEventArgs e)
{
Image imag = Image.FromFile(filename);
e.Graphics.DrawImage(imag, new Point(0,0));
}
这可以确保每次面板被重新绘制(在任何原因无效之后)您的图像是可见的。
试着这样修改:
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();
}