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 或其他东西?
| 归档时间: |
|
| 查看次数: |
4857 次 |
| 最近记录: |