在 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);
如您所见,图像仍然在与以前相同的位置被切断,但旁边没有黑色边框。
如何将当前场景的整个快照放入一个没有这些边界且没有任何内容被截断的文件中?
这是我的代码:
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);