Android在图像处理上处理内存不足异常

时间:2010-09-16 05:58:51

标签: android image-processing out-of-memory bitmapimage

这是此问题的序列部分:Combining 2 Images overlayed

所以问题是:如果图像尺寸太大 - 它会出现异常(内存不足异常) 我想要的是,即使手机获得较低规格的硬件也要处理,它不会发生异常(但处理图像需要更长的时间)

可以这样做吗?

代码段如下:

public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
    Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
    Canvas canvas = new Canvas(bmOverlay);
    canvas.drawBitmap(bmp1, new Matrix(), null);
    canvas.drawBitmap(bmp2, 0, 0, null);
    return bmOverlay;
}

并且该代码块在异步任务中。

如果有人可以帮我解决这个问题,我真的很感激。

谢谢你,问候, 和

2 个答案:

答案 0 :(得分:2)

我认为你别无选择,只能重新缩放较小尺寸的位图......

答案 1 :(得分:0)

我能想到解决这个问题的唯一方法就是将图像分成几部分,这样你就不必一次将所有内容都保存在内存中。如果你不想保留bmp1,你可以直接在它上面绘制bmp2而不是创建一个新的位图,虽然我不确定这是不是你想要的。