Java Robot createScreenCapture 性能

2023-12-25

我需要抓取一系列屏幕截图并将它们连接成一部电影。我正在尝试使用 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(使用前将#替换为@)

Java Robot createScreenCapture 性能 的相关文章

随机推荐

  • 如何删除 wp 短代码中的
     标签?                
                

    我正在尝试创建一个短代码来显示最新的帖子 我使用了以下代码作为短代码 function my recent posts shortcode atts extract shortcode atts array limit gt 5 atts
  • Spark Streaming mapWithState 超时延迟?

    我预计 Spark 1 6 的新 mapWithState API 能够几乎立即删除超时的对象 但存在延迟 我正在使用改编版本测试 APIJavaStatefulNetworkWordCount https github com apach
  • 如何制作动画到wrap_content?

    是否可以使用动画ValueAnimator to wrap content 这似乎只适用于恒定值 public static void valueAnimate final View obj int from int to Interpol
  • 集中回滚-用于使用@transactional

    是否可以告诉Spring回滚异常MyException也RuntimeException使用时在 XML 配置中 transactional 我知道可以在注释中设置回滚 但如果我有很多服务都设置相同的异常 那么这似乎是多余的 我看到人们建议
  • JUnit 5:指定嵌套测试的执行顺序

    是否可以以固定的执行顺序在其他一些测试之间执行多个嵌套测试 E g TestInstance Lifecycle PER CLASS TestMethodOrder OrderAnnotation class class MyTest pr
  • POSIXct 日期转换错误[重复]

    这个问题在这里已经有答案了 将一组字符格式的日期转换为 POSIXct 对象时 我遇到了以下错误 示例数据 t lt c 3 11 2007 1 30 3 11 2007 2 00 4 11 2007 2 00 str t chr 1 3
  • 如何使用区域设置获取特定国家/地区的货币符号?

    我已经尝试过这段代码 它给了我Country Code对于某些国家而不是currency symbol 我想要货币符号而不是代码 数组 resourcesList 包含所有具有其代码的国家 地区 String m String Array
  • 如何在 Android 应用程序中指定和添加自定义打印机?

    我正在为 Android 创建一个应用程序 所需的应用程序功能的一部分是用户可以选择一个特殊的打印机 我们将其称为传输打印机 它将将要打印的文档传递到在外部服务器上运行的进程 我需要采取哪些步骤才能将自定义打印机添加到 Android 打印
  • 双包含解决方案?

    在 C 中 我遇到了双重包含的问题 文件 stuffcollection h pragma once ifndef STUFFCOLLECTION H define STUFFCOLLECTION H include Stage h cla
  • Tensorflow、try 和 except 不处理异常

    我是张量流的新手 我在这里遇到了一个恼人的问题 我正在制作一个程序 加载使用以下命令拍摄的图像 原始数据 tf WholeFileReader read image name queue 从 tfrecord 文件中读取 然后使用tf im
  • 在同一表达式中调用具有局部副作用的函数两次是否是未定义的行为?

    int f static int i 0 return i int g return f f Does g return 3或者是结果undefined 章节和诗句 http www open std org jtc1 sc22 wg14
  • 属性 insetForeground 已经定义

    更新到新版本后 com android support design 22 2 0 我收到这个错误 属性 insetForeground 已经定义 请记住 我正在使用 romannurikScrimInsetsFrameLayout jav
  • Ruby on Rails,找不到有效的 gem 'rails'

    我安装了 ruby 并更新了 ruby gems 现在我想下载 Rails 3 2 13 我写 gem install Rails v 3 2 13 我需要这个版本 我有这个错误 ERROR Could not find a valid g
  • 为什么我们需要在Python中进行编码和解码?

    编码 解码的用例是什么 我的理解是 编码用于将字符串转换为字节字符串 以便能够在程序中传递非 ascii 数据 而decode就是将这个字节串转换回字符串 有点遵循 示例显示即使未编码 解码 非 ascii 字符也能成功打印 例子 val1
  • 在 PDF 中插入换行符

    我正在使用 PHP 即时生成一些 PDF 文件 我的问题是我需要在将插入 PDF 文件的文本的某些部分插入换行符 就像是 pdf gt InsertText Line one n nLine two 所以它打印 Line one Line
  • Visual Studio 2015 非常慢

    我刚安装完 整个IDE速度超级慢 看起来它正在后台进行某种繁重的 CPU 调用 整个 IDE 几乎冻结并在大约 2 3 秒内变得无响应 我在使用 Visual Studio 2013 Ultimate 时没有遇到此问题 我正在运行 Visu
  • 添加变量导致的段错误

    诚然 我是一个纯 C 新手 但这让我难住了 我正在研究链表实现以进行练习 并且通过简单地将变量添加到 split node 函数中 我遇到了段错误 include
  • 比较两个表的值并列出不同的行

    这个问题与这个问题 https stackoverflow com questions 4602083 sql compare data from two tables 4604221 comment 7562192 但只是略有不同 我有
  • 如何像 jQuery 那样实现链接模式? [复制]

    这个问题在这里已经有答案了 如何创建一个像 jQuery 使用的前缀 例如 在 jQuery 中我可以使用 footer css display none 我想启用类似的语法 如下所示 google footer chrome displa
  • Java Robot createScreenCapture 性能

    我需要抓取一系列屏幕截图并将它们连接成一部电影 我正在尝试使用 java Robot 类来捕获屏幕 但 createScreenCapture 方法在我的机器上花费了超过 1 秒的时间 我什至连 1 fps 都达不到 有办法加快速度吗 或者