簡體   English   中英

使用 Robot.createScreenCapture 返回黑色圖像的屏幕截圖?

[英]Screenshot using Robot.createScreenCapture returning black image?

我正在嘗試在 Windows 7 上使用以下代碼捕獲屏幕

 Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
 BufferedImage capture = new Robot().createScreenCapture(screenRect);
 ImageIO.write(capture, "jpg", new File("C:/capture/ScreenShot.jpg"));

並且此代碼返回黑色圖像,不知道為什么請幫忙。

進口情況如下:

import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;

提前謝謝你。

檢查這個,我想它會幫助你。

    public void screenCapture() {
    Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
    Rectangle rectangle = new Rectangle(dimension);
    BufferedImage screen = robot.createScreenCapture(rectangle);
    try {
        ImageIO.write(screen, "jpg", new File("screenshot.jpg"));
    } catch (IOException e) {

        e.printStackTrace();
    }

而在剛剛使用這個空白之后。 :)

在使用 Java 11 和 Java 12 的 Ubuntu 上有類似問題,通過升級到 Java 13 修復。

就我而言,問題出在 Wildfly 啟動模式中。 當它作為服務啟動時,我得到了一個黑屏。 當我通過 standalone.bat 手動啟動它時,問題就消失了。

也許,還有另一個 ScreenDevice。
試試

Robot r = new Robot(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice());
BufferedImage capture = r.createScreenCapture(screenRect);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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