5

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

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

所以,我很好奇,课程这么慢的技术原因是什么?

此外,其他屏幕录像机如何工作?Screencast-o-matic 是 Java,并且似乎表现良好。我假设有某种方法可以与底层操作系统连接,并从缓冲区中提取所有内容或其他内容?我认为必须有一些非常快的方法来获取屏幕上正在绘制的内容的副本——毕竟,操作系统的速度足以在进行大量其他计算的同时多次绘制屏幕!似乎将一组颜色从一个地方复制到另一个地方应该是一种相对便宜的操作。

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

4

1 回答 1

1

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

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

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

于 2013-04-26T16:47:05.453 回答