Javafx 2 尝试将图像扩展到全尺寸时不需要的黑色边框

Javafx 2 尝试将图像扩展到全尺寸时不需要的黑色边框,javafx-2,bufferedimage,snapshot,Javafx 2,Bufferedimage,Snapshot,在JavaFx中拍摄我的场景截图时,我将BuffereImage保存为PNG/JPG文件。当我尝试将图像大小最大化到其全长时,我会在图片上从图像左侧到底部形成黑色边框,而不会增加图像的大小。 在我将尺寸设置为1300x700之前,图像的大小只会增加,如下所示 BufferedImage image = new BufferedImage(1300, 700, BufferedImage.TYPE_INT_RGB); 但是,一旦我将尺寸增加到1300x700以上,就会出现黑色边框 下图设置为

在JavaFx中拍摄我的场景截图时,我将BuffereImage保存为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); 

正如您所看到的,图像的一部分仍然被切断,现在图像旁边有一个大的黑色边框,而不是实际的全尺寸图像

下图设置为

  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);

黑色边框来自未初始化的像素缓冲区,位于
buffereImage
对象内。 因此,我猜
渲染图像本身并不包含场景的正确部分

拍摄快照时,场景可能尚未正确调整大小。尝试为以下对象提供适当的
可写映像


尝试将WritableImage设置为快照方法的参数,如下所示:
quotes.getScene().snapshot(快照)