JavaFx でシーンのスクリーンショットを撮るとき、BufferedImage を PNG/JPG としてファイルに保存します。画像サイズを最大化しようとすると、画像のサイズをまったく大きくすることなく、画像の左から下まで画像に黒い境界線が表示されます。以下に示すように、寸法を 1300x700 に設定するまで、画像のサイズは大きくなります。
BufferedImage image = new BufferedImage(1300, 700, BufferedImage.TYPE_INT_RGB);
ただし、寸法を 1300x700 より大きくすると、黒い境界線が表示されます。
次の写真は
BufferedImage image = new BufferedImage(1500, 900, BufferedImage.TYPE_INT_RGB);
ご覧のとおり、画像の一部がまだ切り取られており、実際のフル サイズの画像ではなく、画像の横に大きな黒い境界線が表示されています。
次の写真は
BufferedImage image = new BufferedImage(1300, 700, BufferedImage.TYPE_INT_RGB);
ご覧のとおり、画像は以前と同じ場所で途切れていますが、横に黒い境界線はありません。
現在のシーンのスナップショット全体を、これらの境界線やコンテンツが途切れることなく 1 つのファイルに収めるにはどうすればよいですか?
これが私のコードです:
File fa = new File("test.jpg");
snapshot = quotes.getScene().snapshot(null);
RenderedImage renderedImage = SwingFXUtils.fromFXImage(snapshot, null);
BufferedImage image = new BufferedImage(1300, 700, BufferedImage.TYPE_INT_RGB);
image.setData(renderedImage.getData());
ImageIO.write(image, "jpg", fa);