[英]ScreenShot solution takes a screentshot of my desktop
我目前正在制作全屏游戲,我希望能夠拍攝一些屏幕截圖。 我發現了以下代碼片段:
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按鈕時,將運行此代碼。 這不是它自己的方法。
如果您使用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
,它可能不可見。 但是,看到您正在從游戲中拍照時,我敢肯定這不會有問題。
從我的桌面而不是實際的全屏游戲。
當游戲進行主動渲染時,這是Robot
(或標准OS屏幕截圖軟件)的代表。 AFAIU對此無能為力(除此之外-用手機攝像頭抓取屏幕截圖)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.