今天,我遇到了奇怪的问题:java.awt.Robot
捕获黑色区域,而不是图像内容。我使用的是 Ubuntu 12.04 和 OpenJDK6/7。
java.awt.Robot
由 sun.awt.X11.XRobotPeer
支持,
其中,继 corresponding OpenJDK sources ,使用与 xwd utililty 使用的图像抓取函数类似的函数(第 92-162 行)。
因此,我运行了以下命令:
xwd -root -out test.screen.root.xwd
然后用gimp打开这个文件。这是我得到的:
然后我尝试了:
xwd -root | xwdtopnm | pnmtopng > Screenshot.root.png
我得到了以下结果: 控制台输出:
xwdtopnm: writing PPM file
libpng warning: Invalid sBIT depth specified
以及图像本身:
什么可能导致这种情况?我该如何修复它?
最佳答案
似乎解决此问题的唯一方法是使用您自己的屏幕截图 native 实现。
以下是 Unity 开发人员对启动板问题的详细描述:launchpad conversation .
问题在于 unity-2d 绘制自身的方式以及 XShaping 的使用。
关于screenshot - xwd/java.awt.Robot 捕获黑色窗口(除了 unity2d shell 之外的所有内容都是黑色的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13493765/