我目前正在制作一个全屏游戏,我想能够采取一些屏幕截图。我找到了这个小代码片段:
BufferedImage image =
new Robot().createScreenCapture(new Rectangle(w.getX(), w.getY(),w.getWidth(),w.getHeight()));
ImageIO.write(image, "jpg", new File("C:\\Users\\Kaizer\\Desktop\\", "ScreenShot" + counter + ".jpg"));我知道它看起来不漂亮,但它是一个屏幕截图,但从我的桌面,而不是我真正的全屏游戏。Windows屏幕截图也是这样做的。
我知道有些事情我忽略了,但我无论如何也想不出来。
顺便说一句:这段代码是在播放器按下F11按钮时运行的。它不是它自己的方法。
发布于 2012-01-20 08:20:45
如果您使用Swing或AWT编写游戏,则可以执行以下操作,而不是使用Robot:
private static void captureImage(Component c, String fileName)
throws IOException {
BufferedImage img = new BufferedImage(c.getWidth(), c.getHeight(),
BufferedImage.TYPE_INT_RGB);
c.paint(img.getGraphics());
ImageIO.write(img, "jpg", new File(fileName + ".jpg"));
}注意:根据您使用的Component,它可能需要可见,也可能不需要可见。但既然你是从游戏中拍的照片,我敢肯定这不会有什么关系。
发布于 2012-01-20 08:10:23
从我的桌面,而不是我真正的全屏游戏..
当游戏执行活动渲染时,这是典型的Robot (或标准操作系统屏幕截图软件)。AFAIU对此无能为力(除了-用手机摄像头抓取屏幕截图)。
https://stackoverflow.com/questions/8935128
复制相似问题