2013-02-13 61 views
0

我想构建一个转换图像格式的应用程序。我正在尝试 将JPG图像转换为BMP,同时这样做我得到OOM,导致应用程序 内存有限,它无法使用该阵列来存储图像 进行转换。如果是这样的话,那么 的应用程序怎么样?Android中的图片转换?

回答

0

我不知道实际的转换是怎么样的,但在任何情况下,您都需要一个缓冲区或类似的东西来消耗jpg。由于Android内存堆在24-48mb(一个内存块)之间,因此在尝试转换时内存不足。

0

Android应用程序的内存是有限的。可用内存的数量因设备而异。因此,在较旧的设备上编辑大图像可能确实是一个问题。

解决方法是使用NDK。在NDK中,您可以分配比Java应用程序更多的内存。

+0

我知道应用程序内存是有限的..........和我有一个C代码,将jpeg转换为使用libjpeg.so通过谷歌bmp。我正在尝试在ndk中使用它,但仍未找到方法。任何暗示? – jxgn 2013-02-13 09:01:05

+0

而谷歌建议NDK没那么多,它说你只有在没有选择时才使用它。所以目前在玩商店他们是如何做到这一点的?游戏使用大量的内存,他们如何限制在有限的空间? – jxgn 2013-02-13 09:02:42

+0

那么,我不知道libjpeg以及它如何处理内存。但是如果你想要超出VM内存限制(16-48 MB),你必须使用NDK,在那里你可以获得更多的内存(容易大于100 MB)。基本上可以根据需要分配尽可能多的内存。确实,大多数应用程序不需要NDK。但其中一个例外是游戏,其中大部分都是用NDK编写的。 – Tomik 2013-02-13 09:38:27