Java Robot createScreenCapture性能

Ham*_*aya 12 java performance swing

我需要抓取一系列截图并将它们连接成电影.我正在尝试使用java Robot类来捕获屏幕.

但是createScreenCapture()方法在我的机器上花费的时间超过1秒.我甚至无法获得1 fps.有没有办法加快速度?或者还有其他API吗?

编辑:它正在分配缓冲的图像.

BufferedImage image = robot.createScreenCapture(screen); //将屏幕截图保存为jpg
文件文件=新文件("图像/屏幕"+索引+".jpg");
ImageIO.write(image,"jpg",file); 索引++;

将其写入jpg文件大约需要200毫秒,因为获取BufferedImage大约需要1400毫秒.

小智 2

我建议使用 C 或 C++,它可以更直接地访问硬件。

如果您想要绝对最大的性能,请进入驱动程序级别并直接从显卡上获取数据。很难找到这样的驱动程序,因为它可以在数据到达屏幕时抓取数据,从而轻松破解任何复制保护。

但是,如果您需要坚持使用 Java 和 Robot,您确定只是这一个函数调用花费了这么长时间?它没有分配 BufferedImage 或其他东西?