gpt4 book ai didi

java - 加载图像错误

转载 作者:行者123 更新时间:2023-11-30 04:40:54 25 4
gpt4 key购买 nike

我需要将生成的图像加载到我的 Java 桌面应用程序中。

我使用的代码与此类似:

BufferedImage img = null;
try {
img = ImageIO.read(new File("strawberry.jpg"));
} catch (IOException e) {
//it isn't the code here
}

图像已加载,但在更大的图像下我的应用程序刚刚退出。

如何检测我可以加载多大的图像,或者不直接退出?

最佳答案

如果您不在事件调度程序线程中(例如按下 UI 中的按钮时),那么您的应用程序不会崩溃。它会使线程崩溃,该线程将被释放,您将不会获得图像,但您的应用程序将处于 Activity 状态。

可以创建一个线程:或者您将扩展一个线程并重写 run() 方法或创建一个 Runnable 接口(interface)并将其提供给线程构造函数。

BufferedImage img = null;
try {
img = ImageIO.read(new File("strawberry.jpg"));
} catch (IOException e) {
//it isn't the code here
}catch(OutOfMemoryError err){
// your code will be here :)
}

在进入加载图像函数之前尝试调试/记录您的代码,看看您的最大可分配内存是多少:

// Get current size of heap in bytes
long heapSize = Runtime.getRuntime().totalMemory();

// Get maximum size of heap in bytes. The heap cannot grow beyond this size.
// Any attempt will result in an OutOfMemoryException.
long heapMaxSize = Runtime.getRuntime().maxMemory();

// Get amount of free memory within the heap in bytes. This size will increase
// after garbage collection and decrease as new objects are created.
long heapFreeSize = Runtime.getRuntime().freeMemory();

如果您有 50 MB 可用空间且文件大小为 50MB,则没有理由尝试加载。

关于java - 加载图像错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12334184/

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