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