/// <summary> /// 截图功能 /// </summary> protected void ShowCutPic() { // 通过Graphics的CopyFromScreen方法把全屏图片的拷贝到我们定义好的一个和屏幕大小相同的空白图片中, // 拷贝完成之后,CatchBmp就是全屏图片的拷贝了,然后指定为截图窗体背景图片就好了。 // 新建一个和屏幕大小相同的图片 //Bitmap CatchBmp = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height); Size Si = ScreenHelper.DESKTOP; // 获取屏幕真实分辨率 Bitmap CatchBmp = new Bitmap(Si.Width, Si.Height); // 创建一个画板,让我们可以在画板上画图 // 这个画板也就是和屏幕大小一样大的图片 // 我们可以通过Graphics这个类在这个空白图片上画图 Graphics gra = Graphics.FromImage(CatchBmp); // 把屏幕图片拷贝到我们创建的空白图片 CatchBmp中 //g.CopyFromScreen(new Point(0, 0), new Point(0, 0), new Size(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height)); gra.CopyFromScreen(new Point(0, 0), new Point(0, 0), new Size(Si.Width, Si.Height)); // 创建截图窗体 cutter = new FmCutPic(); // 指示窗体的背景图片为屏幕图片 //cutter.Image = CatchBmp; // 如果分辨率进行了缩放,图片相应需要缩放 cutter.Image = ScreenHelper.ScaleX > 1 ? shrinkTo(CatchBmp, Screen.AllScreens[0].Bounds.Size, true) : CatchBmp; cutter.Cursor = Cursors.Cross; cutter.ShowDialog(); }
protected void ShowCutPic() { Bitmap CatchBmp = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height); // 创建一个画板,让我们可以在画板上画图 // 这个画板也就是和屏幕大小一样大的图片 // 我们可以通过Graphics这个类在这个空白图片上画图 Graphics g = Graphics.FromImage(CatchBmp); // 把屏幕图片拷贝到我们创建的空白图片 CatchBmp中 g.CopyFromScreen(new Point(0, 0), new Point(0, 0), new Size(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height)); // 创建截图窗体 cutter = new FmCutPic(); cutter.Image = CatchBmp; cutter.Cursor = Cursors.Cross; cutter.ShowDialog(); }