gpt4 book ai didi

Java Swing : Read many images files without memory problems?

转载 作者:行者123 更新时间:2023-12-01 22:45:22 24 4
gpt4 key购买 nike

我正在编写一个 Java Swing 应用程序,它将从磁盘加载大约 1500 张 png 图像,每个图像的大小从 50kb 到 75kb 不等。我不需要一次加载所有这些,但我需要一次加载 50 张图像。我一直在尝试使用典型的方式加载它们:

new javax.swing.ImageIcon(getClass().getResource("myimage.jpeg")

但是我的应用程序卡住了,并且我在大约前 30 张图像后耗尽了内存。

加载这些图像的最佳方式是什么,这样我就不会使 jvm 过载,并且我将能够监视到目前为止哪些已成功加载?如果可能且有必要,我不介意应用程序在加载图像时是否显示“正在加载...”屏幕,但我不确定该怎么做。

缓存在这里有用吗?不是很懂,但是看到了this question关于使用 MediaTracker,我不确定如何在此处实现。

最佳答案

为什么不为每个图像创建一个包装器对象,按需加载它们,并利用 WeakReference s 或 SoftReference秒。这样垃圾收集器可以在必要时对图像数据进行分类,并且您可以在清除弱引用时重新加载。

好处是当需要用于其他用途时,可以清除图像的内存。缺点是您必须在显示之前重新加载图像(或者您对图像所做的任何操作)。

关于Java Swing : Read many images files without memory problems?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1658306/

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