版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/NianandShao/article/details/82587895
compress 图像压缩
compress(CompressFormat format,int quality,OutputStream stream)
params 1 图像压缩格式
params 2 图像压缩率 0~100 可以用保留来理解,填60等于保留60%压缩40%
params 3 将压缩数据写入此输出流
private Bitmap compressBitmap(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//100不压缩,将压缩数据放入baos
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
int options = 100;
//循环判断压缩后的图像是否大于100kb,大于继续压缩
while (baos.toByteArray().length / 1024 > 100) {
baos.reset();
options -= 100;
bitmap.compress(Bitmap.CompressFormat.JPEG, options, baos);
}
//生成新的图像
ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());
return BitmapFactory.decodeStream(isBm);
}
BtyeArrayInputStream和BtyeArrayOutputStream这两兄弟不需要close,close是空实现,GC会回收