我需要抓取一系列屏幕截图并将它们连接成一部电影。我正在尝试使用 java Robot 类来捕获屏幕。
但 createScreenCapture() 方法在我的机器上花费了超过 1 秒的时间。我什至连 1 fps 都达不到。有办法加快速度吗?或者还有其他的API吗?
编辑:它正在分配缓冲图像。
BufferedImage 图像 = robots.createScreenCapture(screen);
//将截图保存为jpg
文件 file = new File("图像/屏幕"+ 索引 + ".jpg");
ImageIO.write(图像,“jpg”,文件);
索引++;
将其写入 jpg 文件大约需要 200 毫秒,而获取 BufferedImage 大约需要 1400 毫秒。
我建议使用 C 或 C++,它可以更直接地访问硬件。
如果您想要绝对最大的性能,请进入驱动程序级别并直接从显卡上获取数据。很难找到这样的驱动程序,因为它可以在数据到达屏幕时抓取数据,从而轻松破解任何复制保护。
但是,如果您需要坚持使用 Java 和 Robot,您确定只是这一个函数调用花费了这么长时间?它没有分配 BufferedImage 或其他东西?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)