gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 17:52:18 25 4
gpt4 key购买 nike

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

enter image description here

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

下图设置为
  BufferedImage image = new BufferedImage(1300, 700, BufferedImage.TYPE_INT_RGB); 

enter image description here

如您所见,图像仍然在与以前相同的位置被切断,但旁边没有黑色边框。

如何将当前场景的整个快照放入一个文件中,而没有这些边框,并且没有任何内容被切断?

这是我的代码:
    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);

最佳答案

黑色边框来自您的 BufferedImage 内未初始化的像素缓冲区。目的。
所以,我猜 renderedImage本身不包含场景的正确部分。

拍摄快照时,场景可能尚未正确调整大小。尽量给个合适的WritableImage snapshot method :

snapshot = quotes.getScene().snapshot(new WritableImage(1500, 900));

关于javafx-2 - 尝试将图像扩展到全尺寸时出现不需要的黑色边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18136666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com