您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用ImageIO.read(file);读取图像 导致java.lang.OutOfMemoryError:Java堆空间

使用ImageIO.read(file);读取图像 导致java.lang.OutOfMemoryError:Java堆空间

我遇到了类似的问题,我必须读取36张图像,将它们裁剪并保存到一个文件中(一次一个)。我发现必须在每次迭代后将图像设置为null,以允许Java进行垃圾回收。即:

BufferedImage img;
for (int i=0; i<36; i++) {
    img = ImageIo.ImageIO.read(anImageFile);
    /* Do what's needed with the image (cropping, resizing etc.) */
    ImageIO.write(img, "jpg", outputFile);
    img.flush();
    img = null;
}

我知道这是一个旧帖子,但我希望它将来能对某人有所帮助。

java 2022/1/1 18:25:17 有400人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶