[英]How to take a screenshot with java from directX
我正在尋找一種方法來獲取任何正在運行的directX游戲的Java應用程序的屏幕截圖。 我使用以下代碼
Robot robot = new Robot();
GraphicsConfiguration config = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
BufferedImage screenshot = robot.createScreenCapture(config.getBounds());
ImageIO.write(screenshot,"png", file);
這款游戲適用於任何地方,但在DirectX游戲中。 我不熟悉Java,甚至不太熟悉DirectX,我只是想調整這段代碼。 我google了很多,但一切都只是導致了我已經擁有的相同代碼。
你知道另一種截取DirectX游戲截圖的方法嗎?
謝謝。
調用GraphicsDevice#getFullScreenWindow
可能會有效,但我還沒有真正測試過這段代碼。
BufferedImage screenshot;
GraphicsDevice gd = GraphicsEnvironment
.getLocalGraphicsEnvironment()
.getDefaultScreenDevice();
Window window = gd.getFullScreenWindow();
if(window == null) {
Robot robot = new Robot();
GraphicsConfiguration config = gd.getDefaultConfiguration();
screenshot = robot.createScreenCapture(config.getBounds());
} else {
screenshot = new BufferedImage(window.getWidth(),
window.getHeight(),
BufferedImage.TYPE_INT_RGB);
window.paint(screenshot.getGraphics());
}
ImageIO.write(screenshot, "png", file);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.