Java me 在j2me中加载高分辨率图像导致堆错误

Java me 在j2me中加载高分辨率图像导致堆错误,java-me,heap,Java Me,Heap,我正在尝试在我的手机MOTO ROKR e6上加载3776*2816 PNG,24位图像-804KB。它放弃了java.lang.OutOfMemoryError,这是处理加载此类高分辨率图像的一般方法。手机的内部内存只有8MB,我想这与错误有关 我也尝试过将图像分割成16个部分并加载它们,但它的处理能力似乎还是有一些限制 请给出建议。因此,只需进行一些快速计算: 24 bits = 3 bytes space required (in bytes) = 3776 * 2816 * 3

我正在尝试在我的手机MOTO ROKR e6上加载3776*2816 PNG,24位图像-804KB。它放弃了java.lang.OutOfMemoryError,这是处理加载此类高分辨率图像的一般方法。手机的内部内存只有8MB,我想这与错误有关

我也尝试过将图像分割成16个部分并加载它们,但它的处理能力似乎还是有一些限制


请给出建议。

因此,只需进行一些快速计算:

24 bits = 3 bytes space required (in bytes) = 3776 * 2816 * 3 = 31,899,648 bytes = 31.9MB 24位=3字节 所需空间(字节)=3776*2816*3 =31899648字节 =31.9MB 这意味着您一旦加载了图像(使用ImageIO或JAI或其他工具),就需要31.9MB来存储原始图像数据。因此,您无法将其加载到只有8MB内存的设备上(我假设没有其他类型的交换空间)


您可以将原始文件作为字节数据而不是图像加载—数据被严重压缩—但我认为这不是您想要的。

因此,似乎无法加载图像:(猜猜我的手机是旧的。我正试图编写一个类似于谷歌地图的应用程序来显示这个高分辨率静态图像,我可以放大/缩小。你可以尝试将图像拼接成更小的片段,然后加载相关的片段。如果你正在构建一个缩放应用程序,你可以考虑在不同分辨率下构建多个图像。n(通过下采样),然后再将其加载到手机上。