/** * 压缩图片 * * @param image * @return */ public static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中 int options = 100; if (baos.toByteArray().length / 1024 > 3024) { image.compress(Bitmap.CompressFormat.JPEG, 40, baos);//这里压缩options%,把压缩后的数据存放到baos中 } else if (baos.toByteArray().length / 1024 > 2024) { image.compress(Bitmap.CompressFormat.JPEG, 50, baos);//这里压缩options%,把压缩后的数据存放到baos中 } else if (baos.toByteArray().length / 1024 > 1024) { image.compress(Bitmap.CompressFormat.JPEG, 40, baos);//这里压缩options%,把压缩后的数据存放到baos中 } // while (baos.toByteArray().length / 1024 > 500) { //循环判断如果压缩后图片是否大于100kb,大于继续压缩 // baos.reset();//重置baos即清空baos // image.compress(Bitmap.CompressFormat.JPEG, options, baos);//这里压缩options%,把压缩后的数据存放到baos中 // options -= 5;//每次都减少10 // } ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());//把压缩后的数据baos存放到ByteArrayInputStream中 Bitmap bitmap = BitmapFactory.decodeStream(isBm, null, null);//把ByteArrayInputStream数据生成图片 return bitmap; }
压缩图片
最新推荐文章于 2022-06-14 09:41:27 发布