【问题标题】:Saving a drawing in C# [duplicate]在 C# 中保存绘图 [重复]
【发布时间】:2016-11-03 11:03:40
【问题描述】:

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

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);

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

【问题讨论】:

  • 您应该使用pictureBox1.DrawToBitmap 将Paint 事件中的BackgroundImage、Image 和任何绘图保存到文件中!
  • 谢谢@TaW。它奏效了。

标签: c#


【解决方案1】:

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

Bitmap backPage = new Bitmap(pictureBox1.Width, pictureBox1.Height);
pictureBox1.Image = backPage;

using(var g = Graphics.FromImage(backPage))
{
    // draw
}

pictureBox1.Refresh();

【讨论】:

    猜你喜欢
    • 2012-05-15
    • 2020-06-17
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 2013-12-06
    • 2015-01-04
    • 2011-03-15
    • 2016-10-08
    相关资源
    最近更新 更多