Android обрабатывает исключение нехватки памяти при обработке изображений - PullRequest
2 голосов
/ 16 сентября 2010

Это часть последовательности этого вопроса: Объединение 2 изображений с наложением

, поэтому проблема в том, что если размер изображения слишком велик - у него будет исключение (изисключение памяти), что я хочу, чтобы обрабатывать, даже если телефон получил аппаратное обеспечение с более низкой спецификацией, это не относится к этому исключению (но это займет больше времени для обработки изображения)

это такможно сделать это?

фрагмент кода выглядит следующим образом:

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;
}

и этот блок кода находится внутри асинхронной задачи.

Я действительно ценю, если кто-то можетпомогите мне в этом вопросе.

Спасибо и С уважением, AnD

Ответы [ 2 ]

2 голосов
/ 06 декабря 2010

Я думаю, что у вас нет выбора, кроме как масштабировать растровые изображения в меньшем размере ...

0 голосов
/ 16 сентября 2010

Единственный способ справиться с этим - разделить изображения на части, чтобы вам не приходилось хранить все в памяти сразу.Если вы не хотите оставлять bmp1, вы можете нарисовать bmp2 непосредственно поверх него, а не создавать новое растровое изображение, хотя я не уверен, что это то, что вам нужно.

...