截图使用Robot.createScreenCapture返回黑色图像?

时间:2016-06-01 10:50:56

标签: java selenium selenium-webdriver awtrobot

我尝试使用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;

提前谢谢。

4 个答案:

答案 0 :(得分:1)

检查一下,我认为它会对你有帮助。

    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();
    }

在使用此虚空之后。 :)

答案 1 :(得分:0)

在具有Java 11和Java 12的Ubuntu上也有类似的问题,此问题已通过升级到Java 13得以解决。

答案 2 :(得分:0)

就我而言,问题出在wildfly启动模式下。当它开始提供服务时,出现黑屏。当我通过standalone.bat手动启动它时,问题就消失了。

答案 3 :(得分:-1)

也许,还有另一个ScreenDevice 尝试

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