我目前正在制作全屏游戏,我希望能够拍摄一些截图。 我找到了这个小代码片段:
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按钮时,会运行此代码。这不是它自己的方法。
答案 0 :(得分:1)
如果您使用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
,可能需要也可能不需要显示。但是当你从游戏中拍摄照片时,我很确定这无关紧要。
答案 1 :(得分:0)
来自我的桌面,而不是我的实际全屏游戏..
当游戏进行活动渲染时,这是典型的Robot
(或标准操作系统屏幕截图软件)。 AFAIU没有什么可以做的(除了 - 用你的手机相机抓住你的截图)。