解决方案
- 通过使用System.Drawing.Graphics中的CopyFromScreen方法截取屏幕图片
- 完整代码
/// <summary>
/// 屏幕帮助类
/// </summary>
public class ScreenHelper
{
/// <summary>
/// 获取屏幕图片
/// </summary>
/// <param name="UpperLeftSource">相对于左上角的坐标</param>
/// <param name="Size">图片大小</param>
/// <returns>截取到的图片</returns>
public static System.Drawing.Bitmap CopyScreenToImage(System.Drawing.Point UpperLeftSource, System.Drawing.Size Size)
{
// 创建一个bitmap对象并将其设置为屏幕大小
var bitmap = new System.Drawing.Bitmap(Size.Width, Size.Height);
// 创建一个Graphics对象并将其设置为
using (var g = System.Drawing.Graphics.FromImage(bitmap))
{
// 将整个屏幕绘制到Graphics对象中
g.CopyFromScreen(UpperLeftSource, System.Drawing.Point.Empty, Size);
}
// 将截图保存为jpg文件
//bitmap.Save("123.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
//bitmap.Dispose();
return bitmap;
}
/// <summary>
/// 获取全屏图片
/// </summary>
/// <returns>截取到的图片</returns>
public static System.Drawing.Bitmap CopyScreenToImage()
{
return CopyScreenToImage(System.Drawing.Point.Empty, Screen.GetBounds(System.Drawing.Point.Empty).Size);
}
}