【发布时间】:2014-07-22 23:22:47
【问题描述】:
我正在尝试在 java 中设计一个程序来定期(每 100 毫秒左右)对我的显示器进行屏幕截图并计算整个屏幕的平均像素 rgb 值。我需要它才能处理视频游戏和 iTunes/Quicktime 视频。但是,我尝试使用 JNA 和机器人来捕获屏幕,它仅在我没有全屏捕获视频游戏或 iTunes 视频时才有效。例如,我通过保存图像来测试我的代码以检查并查看发生了什么。当我玩电子游戏时,我只看到一个空白窗口的屏幕截图。我认为这是因为游戏使用的是 directx 或 openGL,并且与硬件的通信方式与您的典型应用程序不同。
如果我使用 this 方法而不是机器人或 JNA 来捕获屏幕截图,这会解决我的问题吗?看起来它正在从 openGL 屏幕缓冲区复制数据。 DirectX 应用程序呢?
我基本上只是希望能够随时在屏幕上获取感知到的像素数据。不管它是否是全屏 DirectX 或 OpenGL 应用程序。在此先感谢您的帮助。
【问题讨论】:
-
lwjgl 方法只会截屏 lwjgl 显示。即,如果您使用 lwjgl 创建了一个应用程序并想要截取其内容,那么它将起作用,但它不会像您想要的那样捕获整个屏幕
标签: java opengl directx screenshot fullscreen