我正在尝试创建一个小应用程序,允许我剪切一段完整的屏幕截图。现在我创建一个新的位图并用鼠标坐标指定它。
Bitmap bitmap = new Bitmap(e.X, e.Y);
Graphics g = Graphics.FromImage(bitmap);
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
pictureBox1.Image = bitmap;
bitmap.Save(@"C:\Users\asus\Desktop\test c#\test.png");
当我使用此代码并点击此处显示的屏幕http://prntscr.com/ficotc时 我得到了那件作品的截图,虽然我从左上角开始,但效果很好。如果我想从其他地方开始,例如在屏幕中间我改变它。
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
这样的事情
g.CopyFromScreen(100, 100, 0, 0, Screen.PrimaryScreen.Bounds.Size);
然后它从顶部和左侧开始100像素,但最后还有100个像素在右侧和底部,这使得图片变得更大,然后我点击这是我将收到的输出,你可以看到哪里我点击了但它在右侧和底部显示更多然后我想要它。 http://prntscr.com/ficq86
我也试过更改其他2个参数,但没有运气我不知道它能做什么可以告诉我我做错了什么?
答案 0 :(得分:0)
根据docs,最后一个参数是要捕获的矩形的大小。尽量减小它的大小。
var size = new Size(Screen.PrimaryScreen.Bounds.Size.Height - 100,
Screen.PrimaryScreen.Bounds.Size.Width -100);
g.CopyFromScreen(100, 100, 0, 0, size);
答案 1 :(得分:0)
g.CopyFromScreen(100,100,0,0,size); 第一个参数代表起始点x,第二个参数代表起始点y,第三个参数代表目的地x,第四个参数代表目的地y 概要 第一个和第二个参数代表要复制的空间的起点,第三个和第四个参数代表要复制的空间的终点