【问题标题】:Loading Huge resolution images causing Heap error in j2me在 j2me 中加载导致堆错误的超大分辨率图像
【发布时间】:2011-01-16 12:07:01
【问题描述】:

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

我也尝试将图像拆分为 16 个部分并加载它们,但它的处理能力似乎仍然存在一些限制。

请指教。

【问题讨论】:

    标签: heap-memory java-me


    【解决方案1】:

    所以只是一些快速的计算:

    24 位 = 3 个字节 所需空间(以字节为单位)= 3776 * 2816 * 3 = 31,899,648 字节 = 31.9MB

    这意味着一旦您加载了图像(使用 ImageIO 或 JAI 或其他),您需要 31.9MB 来存储原始图像数据。因此,您无法在只有 8MB 内存的设备上加载它(我假设没有其他类型的交换空间)。

    您可以将原始文件加载为数据字节而不是图像 - 数据被严重压缩 - 但我认为这不是您要寻找的。​​p>

    【讨论】:

    • 所以,看起来没有办法加载图像:(。猜猜我的手机很旧。我正在尝试编写一个类似于谷歌地图的应用程序来显示这个我可以的高分辨率静态图像缩小/缩小。
    • 您可以尝试将图像平铺成更小的片段,然后加载相关片段。如果您正在构建缩放应用程序,您可以考虑在将它们加载到手机之前以不同的分辨率(通过下采样)构建多个图像。
    猜你喜欢
    • 1970-01-01
    • 2018-05-02
    • 2011-09-19
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 2017-08-23
    • 1970-01-01
    相关资源
    最近更新 更多