- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我需要抓取一系列屏幕截图并将它们连接成一部电影。我正在尝试使用 java Robot 类来捕获屏幕。
但是 createScreenCapture() 方法在我的机器上需要超过 1 秒的时间。我什至无法获得 1 fps。有没有办法加快速度?或者有没有其他API?
编辑:它正在分配缓冲图像。
BufferedImage image = robot.createScreenCapture(screen);//将屏幕截图保存为jpg
文件 file = new File("images/screen"+ index + ".jpg");
ImageIO.write(图片, "jpg", 文件);指数++;
将其写入 jpg 文件大约需要 200 毫秒,而获取 BufferedImage 大约需要 1400 毫秒。
最佳答案
我建议为此使用 C 或 C++,它可以更直接地访问硬件。
如果您想要绝对的最高性能,请转到驱动程序级别,然后直接从视频卡中取出数据。很难找到这样的驱动程序,因为它可以用来轻松破解任何复制保护,因为它会在数据进入屏幕时获取数据。
但是如果您需要坚持使用 Java 和 Robot,您确定只是这个函数调用花费了这么长时间吗?它没有分配 BufferedImage 或其他东西?
关于Java Robot createScreenCapture 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/646089/
我有代码: Rectangle area = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); BufferedImage bi
这是我写的截屏类: public class imagemanipulation { Dimension screenResolution; Rectangle screenRecta
我一直在尝试构建一个屏幕录像机来练习我萎缩的 Java 技能(尽管已经有太多了)。 但是,我遇到了 Robot 类速度慢得离谱的问题——即使在我的 i7 动力机器上也可能是 15fps,而在我的 ma
以下代码捕获屏幕: import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import java.a
我需要抓取一系列屏幕截图并将它们连接成一部电影。我正在尝试使用 java Robot 类来捕获屏幕。 但是 createScreenCapture() 方法在我的机器上需要超过 1 秒的时间。我什至无
我几乎想知道的是,在使用 java.robot.createScreenCapture() 截取屏幕截图时,是否有任何方法可以获得 alpha/透明度? 最佳答案 不,据我所知没有。老实说,我认为这没
我尝试在 Windows 7 上使用以下代码捕获屏幕 Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScre
我有一个常见的问题,当 rdp session 关闭时屏幕截图变成黑色。没有找到解决此问题的任何有效答案。我有 java-selenium 测试。代码: private void screenShot
在我的 Java 程序中,我需要分析给定坐标中像素的颜色。由于我需要经常这样做,所以我首先捕获屏幕的一部分,然后获取像素颜色。我正在这样做: BufferedImage bi = robot.crea
我正在编写一个以设定的时间间隔捕获屏幕的程序,当我开始测试时,我发现在它开始捕获图片后几乎立即出现了 OutOfMemoryException。我尝试分配更多内存 - 我给了它 256m,但这几乎没有
我正在制作一个程序,要求每秒至少捕获 24 个屏幕截图。目前使用下面的代码,我每大约 94 毫秒只能得到 1 个,所以大约每秒 10 个。 我不想使用任何第 3 方库,因为我试图让它尽可能小,但如果我
我正在 try catch 屏幕而不包括我的应用程序窗口。为此,我首先调用 setVisible(false),然后调用 createScreenCapture 方法,最后调用 setVisible(
如果我运行这段代码: BufferedImage image = new Robot().createScreenCapture(new Rectangle(Toolkit.getDefaultToo
我的电脑上有两个屏幕。我尝试在每个屏幕上进行屏幕截图。我正在使用以下代码: GraphicsDevice[] screens = GraphicsEnvironment.getLocalGraphic
我是一名优秀的程序员,十分优秀!