如何将graphics.copyfromscreen保存到硬盘上的位图文件?

时间:2016-04-21 17:34:59

标签: c# .net winforms

在按钮点击事件中:

private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
            painting = false;
            pictureBox2.Invalidate();
        }

然后在油漆事件中:

private void pictureBox2_Paint(object sender, PaintEventArgs e)
        {
            Point pnt;

            if (rect.Width > 10 && rect.Height > 10)
            {
                pnt = PointToScreen(pictureBox1.Location);
                e.Graphics.Clear(Color.White);
                e.Graphics.CopyFromScreen(pnt.X + rect.X, pnt.Y + rect.Y, rect.X, rect.Y, new Size(rect.Width, rect.Height));
            }
        }

我想保存到位图文件而不是整个pictureBox2.Image,只保存CopyFromScreen部分。

这是pictureBox2的截图

screenshot

屏幕截图边框中的pictureBox2也是图像周围的白色。但我想只保存图像而不是整个pictureBox2.Image,并在pictureBox2绘制事件之前执行它可能在按钮单击事件中。因此图像只会保存到位图中。

1 个答案:

答案 0 :(得分:1)

如果你想要的只是从Graphics对象中保存一些内容(无论你是否使用过CopyFromScreen调用),你可以参考之前发布的内容: Saving System.Drawing.Graphics to a png or bmp

甚至在那里:How does the Graphics CopyFromScreen method copy into a bitmap?

请注意,您不一定需要使用PictureBox Paint事件处理程序。

让我知道这是否能回答你的问题=]