複数のアダプタ/画面を備えた拡張デスクトップのスクリーンショットを撮りたい場合は、次のコードを使用できます。
static void takeScreenShot(String path) throws AWTException, IOException {
Rectangle screenRect = new Rectangle(0, 0, 0, 0);
for (GraphicsDevice gd : GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices()) {
screenRect = screenRect.union(gd.getDefaultConfiguration().getBounds());
}
BufferedImage capture = new Robot().createScreenCapture(screenRect);
File output = new File(path);
ImageIO.write(capture, "bmp", output);
}
しかし、私の場合は、VGA アダプター (オンボード) が 1 つ、モニター (HDMI) が 1 つしかなく、新しい Windows 10 仮想デスクトップ機能を使用しています。
同様の Java プログラムを使用して他の仮想デスクトップのスクリーンショットを撮るにはどうすればよいですか?
幅を2倍Rectangle
(1920x2)にしてみましたが、撮影したスクリーンショットではピクセル1920から3840までがすべて黒くなってしまいます。
static void takeScreenShot(String path) throws AWTException, IOException {
Rectangle screenRect = new Rectangle(0, 0, 1920*2, 1080);
BufferedImage capture = new Robot().createScreenCapture(screenRect);
File output = new File(path);
ImageIO.write(capture, "bmp", output);
}