Я снимаю изображения с помощью своей камеры Android, но камера имеет разрешение 8 МП, поэтому я получаю изображения в формате jpeg размером 4-5 МБ. Итак, я попытался сжать их до 1 МБ, используя следующий код.
data содержит изображение в формате jpeg, а baos имеет тип ByteArrayOutputStream.
while ( data.length > 1 * 1024 * 1024 )
{
System.gc();
Log.e(TAG,"Data size "+ (data.length/1024));
bitmapData.compress(CompressFormat.JPEG, compressionRatio, baos);
data = baos.toByteArray();
Log.e(TAG,"Data size "+ (data.length/1024));
compressionRatio -= 5 ;
}
Это позволяет мне сделать несколько снимков, но после пары снимков приложение вылетает с журналом ошибок Out of memory
. Может ли кто-нибудь предложить лучшее решение для сжатия JPEG.
Спасибо