Сжатие картинки Android без полной загрузки в память

Есть ли способ сжать изображение без полной загрузки его в память? Насколько я понимаю BitmapFactory.decodeStream и аналогичные методы загружают все в память и только после загрузки всей картинки ее можно сжать с помощью Bitmap.compress

Моя задача отправить картинку с андроида на сервер

1 ответ

Решение

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

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

Чтобы создать BitmapRegionDecoder, вызовите newInstance(...). Имея BitmapRegionDecoder, пользователи могут повторно вызывать decodeRegion(), чтобы получить декодированное растровое изображение указанной области.

Другие вопросы по тегам