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 秒后得到另一个......需要一种方法来拍摄更快的图像。最好拿游戏框架。
我会考虑解决这个问题。
当项目进入位图堆栈时,将位图保存在内存和单独的线程上,您可以一次弹出一个并保存到磁盘。
通过这种方式,您可以根据需要继续截取任意数量的屏幕截图
避免此行
using(Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height))
在每次调用时保存屏幕截图。只需将其初始化为全局变量一次,即可看到魔力。
如果您想抓取多个屏幕截图,您可能需要考虑使用"帧计数器"并将其按周期相加。