C#提供了System.Drawing命名空间中的类,可以很方便地实现屏幕截图功能,以下是示例代码:; i: @1 q0 w, g0 a6 o
using System;
using System.Drawing;
using System.Windows.Forms;
namespace ScreenShotExample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnScreenshot_Click(object sender, EventArgs e)
{
// 获取屏幕大小
Rectangle bounds = Screen.GetBounds(Point.Empty);
// 创建一个bitmap对象并将其设置为屏幕大小
using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
{
// 创建一个Graphics对象并将其设置为bitmap
using (Graphics g = Graphics.FromImage(bitmap))
{
// 将整个屏幕绘制到Graphics对象中
g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
}
// 将截图保存为jpg文件
bitmap.Save("screenshot.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
MessageBox.Show("屏幕截图已保存");
}
}
} 在上面的代码中,我们首先使用Screen.GetBounds方法获取当前屏幕的大小。然后,创建一个Bitmap对象,并将其大小设置为屏幕大小。接着,我们创建一个Graphics对象,并将其设置为Bitmap。最后,使用Graphics.CopyFromScreen方法将整个屏幕绘制到Graphics对象中。最后保存为jpg文件。
# Q. H7 d1 C. X Z4 I* a( T这个示例只保存了一张屏幕截图。如果需要截取窗口或指定区域,可以使用GetWindowRect或GetDesktopWindow方法获取窗口的矩形区域,或使用一些计算方法获取指定矩形的截图。
3 O5 W$ O" H3 A$ @& @* [7 S+ k! w需要注意的是,保存的截图可能会很大,因此最好使用压缩算法将其保存为较小的文件。另外,由于使用了System.Drawing命名空间,因此需要添加对System.Drawing.dll的引用。 |