在C#中保存图形

时间:2016-11-03 11:03:40

标签: c#

我正在尝试在Windows窗体(C#)中创建一个绘图应用程序。它有不同的标签,在一个标签中有一个pictureBox作为我的绘图表面。我通过使用以下代码从屏幕复制来保存图像:

Bitmap bmpz = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics gSaveAs = Graphics.FromImage(bmpz);
Rectangle rectSaveAs = pictureBox1.RectangleToScreen(pictureBox1.ClientRectangle);
gSaveAs.CopyFromScreen(rectSaveAs.Location, Point.Empty, pictureBox1.Size);

有没有更好的方法来保存图纸?上述方法产生图像但不必与绘制的图像相同。例如,如果我有一个弹出窗口或图片框顶部的东西,那么保存的图像也会弹出。如何保存屏幕上绘制的内容?

1 个答案:

答案 0 :(得分:-1)

我会在Bitmap上绘制并将其呈现在PictureBox中。这样你就不需要抓住屏幕了。

Bitmap backPage = new Bitmap(pictureBox1.Width, pictureBox1.Height);
pictureBox1.Image = backPage;
using(var g = Graphics.FromImage(backPage))
{
    // draw
}

pictureBox1.Refresh();