Android开发-图片压缩框架-Luban(鲁班)

1.简述

Android开发过程中图片压缩很常见,实现有很多方式,经过多种方式对比后,这里使用很好的方式就是使用Luban(鲁班),对比原图与压缩后的图片逆向推算出来的压缩算法。 压缩率真的很高,并且很清晰。基本秒杀,使用系统的压缩方式等。使用,也算很简单。

2.引用

//在build.gradle中引入框架
implementation 'top.zibin:Luban:1.1.8'

github直达

3.代码使用

Luban.with(this)  //context
        .load(imgfile)  // 需要压缩的图片file
        .ignoreBy(100)   //压缩率 ,默认100 
        .setTargetDir(getPath())  //压缩后文件目录
        .filter(new CompressionPredicate() {
          @Override
          public boolean apply(String path) {
            return !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif"));
          }
        })
        .setCompressListener(new OnCompressListener() {
          @Override
          public void onStart() {
            // TODO 压缩开始前调用,可以在方法内启动 loading UI
          }

          @Override
          public void onSuccess(File file) {
            // TODO 压缩成功后调用,返回压缩后的图片文件
            //如果希望替换原图可以执行这行
            file.renameTo(imgfile);
          }

          @Override
          public void onError(Throwable e) {
            // TODO 当压缩过程出现问题时调用
          }
        }).launch();

4.测试结果

拍摄图片大小: 压缩前: 10.0 MB
拍摄图片大小: 压缩后: 258 KB

图片清晰度没有太大变化,大概压缩比例如下图所示.

无标题.png

你可能感兴趣的:(Android开发-图片压缩框架-Luban(鲁班))