个人记录 Bitmap compress

版权声明:本文为博主原创文章,未经博主允许不得转载。 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会回收

猜你喜欢

转载自blog.csdn.net/NianandShao/article/details/82587895