我尝试使用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;
提前谢谢。
答案 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);