簡體   English   中英

如何從directX獲取java的屏幕截圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM