Потому что вы не можете просто использовать изображение из галереи или камеры как есть. Вы должны сжать это изображение перед выполнением какой-либо операции ( 3 МБ - большие данные, и теперь мобильные телефоны имеют 5 МБ> изображение также ).
- Вы сожмете изображение после получения его URI.
Для этого введите описание ссылки здесь проделал большую работу. Вы просто будете использовать простые методы этой библиотеки.
Добавить это на уровень приложения Build.gradle
dependencies {
compile 'id.zelory:compressor:2.1.0'
}
и простой метод
Сжать файл изображения
compressedImageFile = new Compressor(this).compressToFile(actualImageFile);
Сжать файл изображения в растровое изображение
compressedImageBitmap = new Compressor(this).compressToBitmap(actualImageFile);
Смотрите на изображении ниже, этот метод сжатия изображений великолепно сжимает ваше изображение. Который выглядит все так же с большой разницей в размерах.