我正在尝试将3776 * 2816 PNG,24位图像 - 804KB加载到我的手机上,MOTO ROKR e6.It放弃了java.lang.OutOfMemoryError,它们是处理加载此类高分辨率图像的一般方法手机的内存只有8MB,我认为这与错误有关。
我也尝试将图像分割成16个部分并加载它们,但它仍然可以处理它的一些限制。
请告知。
答案 0 :(得分:1)
所以只是一些快速计算:
24 bits = 3 bytes space required (in bytes) = 3776 * 2816 * 3 = 31,899,648 bytes = 31.9MB
这意味着一旦你加载了图像(使用ImageIO或JAI或其他),你需要31.9MB来存储原始图像数据。因此,您无法将其加载到只有8MB内存的设备上(我假设没有其他类型的交换空间)。
您可以将原始文件作为数据字节而不是图像加载 - 数据被大量压缩 - 但我不认为这是您正在寻找的。 p>