gpt4 book ai didi

java - 使用许多连续图像时如何修复 java 堆空间内存不足

转载 作者:行者123 更新时间:2023-12-02 09:57:26 24 4
gpt4 key购买 nike

尝试使用 JasperReport 执行一些打印。

JasperReport 提供了将文档打印到 BufferedImage 的功能,我将其转换为 WritableImage 以将其显示在 ImageView 对象上(如下面的代码所示)。

当我在 getImage(int pageNumber) 函数中遇到 Java 堆空间内存不足异常时。我的猜测是,对图像的旧引用没有被释放。

可以解决这个问题吗?

private void viewPage(int pageNumber) throws JRException {
this.resultViewer.setFitHeight(this.imageHeight * this.zoomFactor);
this.resultViewer.setFitWidth(this.imageWidth * this.zoomFactor);
this.resultViewer.setImage(this.getImage(pageNumber));
}

@FXML
private ImageView resultViewer;

private WritableImage getImage(int pageNumber) throws JRException {
return SwingFXUtils
.toFXImage((BufferedImage) JasperPrintManager.printPageToImage(this.jasperPrint, pageNumber, 2), null);
}

最佳答案

我通过在显示下一个之前在最后一个显示的 BufferedImage 上调用flush()函数解决了这个问题

关于java - 使用许多连续图像时如何修复 java 堆空间内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55890007/

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