Android图片压缩
16lz
2022-04-03
比较简单,直接上代码
public static Bitmap compressImage(Bitmap bitmap) { if (bitmap != null) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.JPEG, 100, baos); int length = baos.size(); Logger.d("compressImage", "before compress size:" + (length/1024) + "KB"); final int MIN_BYTE = 200 * 1024; //小于200K就放过它吧 if (length > MIN_BYTE) { Logger.d("compressImage", "large than 200KB begin compress."); //压缩比例公式,可自行定义 int quality = (int) (((length - MIN_BYTE) / 5.0 + MIN_BYTE) * 100 / length); Logger.d("compressImage", "compress rate:" + quality + "%"); baos.reset(); if (bitmap.compress(CompressFormat.JPEG, quality, baos)) { byte[] bs = baos.toByteArray(); length = bs.length; Logger.d("compressImage", "compress success new size:" + (length/1024) + "KB"); ByteArrayInputStream bais = new ByteArrayInputStream( bs); return BitmapFactory.decodeStream(bais); } } else { Logger.d("compressImage", "Not compress less than 200K size:" + (length/1024) + "KB"); } } else { Logger.d("compressImage", "decode bitmap error"); } return bitmap; }
更多相关文章
- Android:监听WIFI网络状态
- Android(安卓)获取内存信息
- Delphi XE5 android 获取网络状态
- Android(安卓)加载图片传到另一个页面 关于回调
- [Android] 动态语言切换
- Android:实现两个数相加的例子
- android 使用AsyncTask代替thread进行网络请求
- Android(安卓)五种不同样式Toast
- Android(安卓)使用des算法