/** * 按质量压缩 */ public Bitmap compressImage(String imgPath){ //得到bitmap Bitmap bm = BitmapFactory.decodeFile(imgPath); ByteArrayOutputStream bos = new ByteArrayOutputStream();//创建输出流,保存图片信息 bm.compress(Bitmap.CompressFormat.JPEG, 100, bos);//100表示原始质量,读取图片信息到bos中 int size1 = bos.size(); int option = 90;//按质量压缩到90% while(bos.size() > 1024 *50 ){//1024*50表示50kb,要压缩到的大小,,这个if为真,表示质量大于50kb,继续压缩 bos.reset();//情况输出流,供下次压缩使用 bm.compress(Bitmap.CompressFormat.JPEG, option,bos);//按着option的比例压缩质量 option -= 10; } //while走完,表示尺寸不再>50,压缩到目标质量,,,读取数据,转换为bitmap ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); Bitmap bitmap = BitmapFactory.decodeStream(bis, null, null); return bitmap; }
图片压缩按质量压缩
最新推荐文章于 2021-11-22 09:44:44 发布