-1

我已经创建了绘图程序。它使用 System.graphics 在 panel1 上以表格形式绘制矩形等。 图形 鼠标绘制事件: 绘制 我想从 panel1 获取艺术作为位图,尝试了以下代码:

using (var bmp = new Bitmap(panel1.Width, panel1.Height))
{
    panel1.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
    bmp.Save("output.png", System.Drawing.Imaging.ImageFormat.Jpeg);
}

但它会在图像中生成 panel1 的背景颜色

4

1 回答 1

1

在某处的面板的 Paint 事件中添加一个处理程序(例如表单构造函数):

panel1.Paint += panel1_Paint;

[重新]在事件中绘制任何图形:

void panel1_Paint(object sender, PaintEventArgs e)
{            
    DrawLine(e.Graphics);
}

保存时,您的代码应该可以正常工作:

private void button1_Click(object sender, EventArgs e)
{
    using (var bmp = new Bitmap(panel1.Width, panel1.Height))
    {
        panel1.DrawToBitmap(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height));
        bmp.Save("c:\\temp\\output.png", System.Drawing.Imaging.ImageFormat.Jpeg);
    }
}
于 2016-10-25T18:12:50.937 回答