Android: Как улучшить управление памятью для обработки изображений - PullRequest
1 голос
/ 26 февраля 2012

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

Bitmap result = Bitmap.createBitmap(bitmap.getHeight(), bitmap.getWidth(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(result);
canvas.save();
canvas.rotate(90);
canvas.translate(0, -1*bitmap.getHeight());
canvas.drawBitmap(bitmap, new Matrix(), null);
canvas.restore();
String path = String.format(dir+"pic_%d.jpg", System.currentTimeMillis());
stream = new FileOutputStream(path);
bitmap.compress(CompressFormat.JPEG, this.imageQuality, stream);
stream.flush();
stream.close();

Проблема в том, что я получаю исключение OutOfMemoryException (первая строка).Есть ли какой-нибудь способ сделать это с помощью дополнительного потока или другого решения?Уменьшение размера изображения в настоящее время недоступно.

1 Ответ

2 голосов
/ 26 февраля 2012

Если вам не нужен альфа-канал на изображении, вы можете использовать RGB_565 вместо ARGB_8888.Это сэкономит вам 2 байта на пиксель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...