Сжатие картинки Android без полной загрузки в память
Есть ли способ сжать изображение без полной загрузки его в память? Насколько я понимаю BitmapFactory.decodeStream
и аналогичные методы загружают все в память и только после загрузки всей картинки ее можно сжать с помощью Bitmap.compress
Моя задача отправить картинку с андроида на сервер
1 ответ
Вы можете использовать BitmapRegionDecoder, чтобы прочитать только часть исходного изображения, а затем сжать и загрузить каждую часть отдельно.
BitmapRegionDecoder может использоваться для декодирования области прямоугольника из изображения. BitmapRegionDecoder особенно полезен, когда исходное изображение велико и вам нужны только части изображения.
Чтобы создать BitmapRegionDecoder, вызовите newInstance(...). Имея BitmapRegionDecoder, пользователи могут повторно вызывать decodeRegion(), чтобы получить декодированное растровое изображение указанной области.