gpt4 book ai didi

java - Robot().createScreenCapture() 如此缓慢背后的技术和根本原因是什么?

转载 作者:搜寻专家 更新时间:2023-11-01 00:51:23 24 4
gpt4 key购买 nike

我一直在尝试构建一个屏幕录像机来练习我萎缩的 Java 技能(尽管已经有太多了)。

但是,我遇到了 Robot 类速度慢得离谱的问题——即使在我的 i7 动力机器上也可能是 15fps,而在我的 macbook 上则是 4-5fps 的爬行。我已经使用 Python 构建了一个工作记录器,并且能够通过使用 PIL 抓取快照至少达到可靠的 20-24fps。

所以,我很好奇,类(class)这么慢的技术原因是什么?

此外,其他屏幕录像机如何工作? Screencast-o-matic 是 Java 的,似乎表现不错。我假设有某种方法可以连接底层操作系统,并将所有内容从缓冲区或其他东西中提取出来?我想象必须有一些快得离谱的方法来获取屏幕上正在绘制的内容的副本——毕竟,操作系统足够快,可以在进行无数次其他计算的同时多次绘制屏幕!似乎将一组颜色从一个地方复制到另一个地方应该是一个相对便宜的操作。

我决心不放弃!我只是不知道我需要知道什么才能真正深入构建一个合适的录音机。

最佳答案

我不是很确定。但仍然是一个很可能的原因。

操作系统:操作系统已经绘制屏幕。有意义的是,它存储了图形,直到发生新的事情。可以轻松保存图形。

Java 机器人:机器人在存储数据之前先收集数据。屏幕截图使用方法。该方法是 getPixelColor()。它做了一个大循环来获取屏幕上的所有像素。在高清屏幕上,该方法被调用 921600 次(1280*720),这需要时间,而且需要压缩成图像并保存。

关于java - Robot().createScreenCapture() 如此缓慢背后的技术和根本原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14699209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com