0

我需要快速从游戏中获取图像。我尝试使用这样的简单屏幕截图:

        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 秒后得到另一个……需要一种方法来拍摄更快的图像。拿游戏帧会更好。

4

3 回答 3

1

我会考虑把它关掉。

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

这样您就可以继续拍摄任意数量的屏幕截图

于 2012-06-15T13:44:33.457 回答
0

避开这条线

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

在每次通话时保存屏幕截图。只需将它初始化一次作为全局变量,然后看看它的神奇之处。

于 2014-05-16T05:27:08.763 回答
0

如果您想抓取多个屏幕截图,您可能需要考虑一个“frameCounter”并在每个周期中添加它。

于 2015-05-20T12:56:12.690 回答