2010-09-16 2 views
2

Это последовательность часть этого вопроса: Combining 2 Images overlayedAndroid обработка из исключения памяти по обработке изображений

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

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

фрагмент кода, как это:

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

+1

http://codingaffairs.blogspot.com/2016/07/processing-bitmap-and-memory-management. HTML –

ответ

0

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

2

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