我正在使用我的 Android 相机拍摄图像,但相机是 8 MP,所以我得到大约 4-5 MB jpeg 图像。因此,我尝试使用以下代码将它们压缩到 1 MB。
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。
谢谢你