在按钮点击事件中:
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的截图
屏幕截图边框中的pictureBox2也是图像周围的白色。但我想只保存图像而不是整个pictureBox2.Image,并在pictureBox2绘制事件之前执行它可能在按钮单击事件中。因此图像只会保存到位图中。
答案 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事件处理程序。
让我知道这是否能回答你的问题=]