android 图片压缩 框架鲁班。

图片压缩很常见,实现有很多方式,这里使用很好用luban ,Luban(鲁班)就是通过在微信朋友圈发送近100张不同分辨率图片,对比原图与微信压缩后的图片逆向推算出来的压缩算法。 压缩率真的很高,并且很清晰。基本秒杀,使用系统的压缩方式等。使用

也算很简单

 我先说下使用步骤,最后放上 测试数据。

1.引入框架

compile 'top.zibin:Luban:1.1.8'

2.代码使用

Luban.with(this)  //context
        .load(photos)  // 需要压缩的图片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 压缩成功后调用,返回压缩后的图片文件
// 这个不是在主线程,跟新ui ,切换到主线程
          }

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

测试数据: 

图片大小: 压缩前: 4210724  --4M
图片大小: 压缩后: 176733--  150k

分辨率没有变化,大概是 25倍的压缩率.

猜你喜欢

转载自blog.csdn.net/qq_40803752/article/details/85951181