2012-11-21 40 views
1

今天,我遇到了一个奇怪的问题:java.awt.Robot捕获黑色区域,而不是图像内容。我使用Ubuntu 12.04和OpenJDK6/7。xwd/java.awt.Robot捕获黑色窗口(除了unity2d外壳以外的所有东西都是黑色的)

java.awt.Robot在Unix由sun.awt.X11.XRobotPeer, 其中,继corresponding OpenJDK sources,使用图像采集类似的那些功能,通过xwd utililty(行92-162)中使用的支持。

所以,我跑以下命令:

xwd -root -out test.screen.root.xwd 

,然后打开该文件与瘸子。下面是我得到:

enter image description here

然后我尝试:

xwd -root | xwdtopnm | pnmtopng > Screenshot.root.png 

而且我得到以下结果: 控制台输出:

xwdtopnm: writing PPM file 
libpng warning: Invalid sBIT depth specified 

而且图像本身: enter image description here

什么会导致这种情况?我该如何解决它?

+1

我会在Oracle的官方JDK上试试你的代码,如果这样做不起作用,那么就在Oracle的官方JDK上的Windows上试试它。如果其中任何一个使用您的代码,然后提交错误报告。无论是反对openJDK还是官方的。如果这些代码都不能用于你的代码,那么修复你的代码。 – Bill

+0

我在OpenJDK6/7和OracleJDK6/7上试过。这是Ubuntu-linux唯一的问题。机器人在Windows上按预期工作。 –

+0

统一标签用于Microsoft Unity。请不要滥用它。 –

回答

1

看起来像解决这个问题的唯一方法就是使用自己的屏幕截图本地实现。

下面是团结开发者在启动板上对问题的详细描述:launchpad conversation

问题在于unity-2d的绘制方式和使用XShaping的方式。

相关问题