QQ登录

只需要一步,快速开始

APP扫码登录

只需要一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 438|回复: 0

[C#/.NET] C#实现屏幕截图

[复制链接]

等级头衔

积分成就    金币 : 2851
   泡泡 : 1516
   精华 : 6
   在线时间 : 1301 小时
   最后登录 : 2024-12-4

丰功伟绩

优秀达人突出贡献荣誉管理论坛元老活跃会员

联系方式
发表于 2023-9-27 11:11:44 | 显示全部楼层 |阅读模式
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的引用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|paopaomj.COM ( 渝ICP备18007172号|渝公网安备50010502503914号 )

GMT+8, 2024-12-4 04:25

Powered by paopaomj X3.5 © 2016-2025 sitemap

快速回复 返回顶部 返回列表