【发布时间】:2009-09-02 18:56:54
【问题描述】:
我正在创建一个将图片发送到 servlet 的小程序。
小程序的第一个动作是调整图片大小和压缩图片。 我正在使用 ImageIO 将图片加载到 BufferedImage 中。接下来我调整图片大小,然后使用 ImageWriter 将其压缩为 jpeg。没问题。
问题是当用户发送一个非常大的图片(高达 70MP)时。 BufferedImage 中图像的加载超出堆大小并引发“内存不足”异常。
我怎样才能避免这种情况?
是否可以压缩图片而不将其完全加载到内存中?也许只使用流?还是加载 subImage ?
对不起,我的英语不好, 感谢您的回答。
【问题讨论】:
-
您使用的是哪种压缩方式?您是更改为不同的图像压缩类型还是只是压缩图像数据?