ScreenShot解决方案截取了我桌面的截图

时间:2012-01-19 23:58:47

标签: java desktop screenshot fullscreen

我目前正在制作全屏游戏,我希望能够拍摄一些截图。 我找到了这个小代码片段:

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按钮时,会运行此代码。这不是它自己的方法。

2 个答案:

答案 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没有什么可以做的(除了 - 用你的手机相机抓住你的截图)。