c#实现屏幕截图

c#提供了System.Drawing命名空间中的类,可以很方便地实现屏幕截图功能,以下是一个示例代码:

```csharp
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文件。

这个示例只保存了一张屏幕截图。如果需要截取窗口或指定区域,可以使用GetWindowRect或GetDesktopWindow方法获取窗口的矩形区域,或使用一些计算方法获取指定矩形的截图。

需要注意的是,保存的截图可能会很大,因此最好使用压缩算法将其保存为较小的文件。另外,由于使用了System.Drawing命名空间,因此需要添加对System.Drawing.dll的引用。

  • END
  • 如果觉得好用欢迎大家分享给身边的小伙伴!
  • -

  • 技术群:添加小编微信并备注进群

    小编微信:mm1552923   

    公众号:dotNet编程大全    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值