java bitmap图片压缩_android 如何把Bitmap进行压缩?

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:55   1354   0

简单粗暴上代码

/**

* 图片质量压缩

* @param image

* @param srcPath 要保存的路径

* @return

*/

public static Bitmap compressImage(Bitmap image, String srcPath) {

ByteArrayOutputStream baos = new ByteArrayOutputStream();

image.compress(Bitmap.CompressFormat.JPEG, 100, baos);// 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中

int options = 100;

while (baos.toByteArray().length / 1024 > 100) { // 循环判断如果压缩后图片是否大于100kb,大于继续压缩

baos.reset();// 重置baos即清空baos

options -= 10;// 每次都减少10

image.compress(Bitmap.CompressFormat.JPEG, options, baos);// 这里压缩options%,把压缩后的数据存放到baos中

}

ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());// 把压缩后的数据baos存放到ByteArrayInputStream中

Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);// 把ByteArrayInputStream数据生成图片

try {

FileOutputStream out = new FileOutputStream(srcPath);

bitmap.compress(Bitmap.CompressFormat.PNG, 90, out);

} catch (Exception e) {

e.printStackTrace();

}

return bitmap;

}

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP