在JavaFx中截取我的场景的屏幕截图时,我将BufferedImage作为PNG/JPG保存到文件中.当我尝试将图像大小最大化到其全长时,我会在图像左侧到底部的图片上出现黑色边框,而图像根本不会增大.图像的大小只会增加,直到我将尺寸设置为1300x700,如下所示.
BufferedImage image = new BufferedImage(1300, 700, BufferedImage.TYPE_INT_RGB);
Run Code Online (Sandbox Code Playgroud)
但是,一旦我将尺寸增加到大于1300x700,就会出现黑色边框.
以下图片设置为
BufferedImage image = new BufferedImage(1500, 900, BufferedImage.TYPE_INT_RGB);
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,图像的一部分仍然被截断,图像旁边现在有一个大的黑色边框,而不是实际的全尺寸图像.
以下图片设置为
BufferedImage image = new BufferedImage(1300, 700, BufferedImage.TYPE_INT_RGB);
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,图像仍然在与之前相同的位置切断,但是没有黑色边框.
如何将当前场景的整个快照合并到一个没有这些边框的文件中,并且没有任何内容被截断?
这是我的代码:
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);
Run Code Online (Sandbox Code Playgroud)