Я рисую наложение на изображение с камеры и сохраняю результат в файл. Чтобы сделать это, я передаю обратный вызов, содержащий код ниже, для takePicture(). При больших размерах изображений, я получаю сбои с OutOfMemoryError в первой строке метода.Как эффективно изменять захваченные байты с камеры?
Есть ли способ сделать это более эффективно? Похоже, что невозможно сделать измененный битмап из байта [], что сразу удваивает использование памяти. Если это невозможно сделать при высоких разрешениях, как может Я создаю наложение на большом захваченном изображении без исчерпания памяти?
public void onPictureTaken(byte[] rawPlainImage, Camera camera) {
Bitmap plainImage = BitmapFactory.decodeByteArray(rawPlainImage, 0, rawPlainImage.length);
plainImage = plainImage.copy(plainImage.getConfig(), true);
Canvas combinedImage = new Canvas(plainImage);
combinedImage.drawBitmap(mOverlay, mOverlayTransformation, null);
//Write plainImage (now modified) out to a file
plainImage.recycle();
}