C#获取快速屏幕截图或应用程序框架

本文关键字:应用程序框架 屏幕截图 获取 | 更新日期: 2023-09-27 18:37:24

我需要快速从游戏中获取图像。我尝试使用简单的屏幕截图,如下所示:

        Rectangle bounds = Screen.GetBounds(Point.Empty);
        using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
        {
            using (Graphics g = Graphics.FromImage(bitmap))
            {
                g.CopyFromScreen(Point.Empty, Point.Empty, bounds.Size);
            }
            bitmap.Save("Screen.bmp");
        }  

但我不知道为什么如果我得到屏幕截图,我可以在 10 秒后得到另一个......需要一种方法来拍摄更快的图像。最好拿游戏框架。

C#获取快速屏幕截图或应用程序框架

我会考虑解决这个问题。

当项目进入位图堆栈时,将位图保存在内存和单独的线程上,您可以一次弹出一个并保存到磁盘。

通过这种方式,您可以根据需要继续截取任意数量的屏幕截图

避免此行

using(Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))

在每次调用时保存屏幕截图。只需将其初始化为全局变量一次,即可看到魔力。

如果您想抓取多个屏幕截图,您可能需要考虑使用"帧计数器"并将其按周期相加。