Android开发-图片压缩框架-Luban(鲁班)
2022-07-19 本文已影响0人
HMZZS
1.简述
Android开发过程中图片压缩很常见,实现有很多方式,经过多种方式对比后,这里使用很好的方式就是使用Luban(鲁班),对比原图与压缩后的图片逆向推算出来的压缩算法。 压缩率真的很高,并且很清晰。基本秒杀,使用系统的压缩方式等。使用,也算很简单。
2.引用
//在build.gradle中引入框架
implementation 'top.zibin:Luban:1.1.8'
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
图片清晰度没有太大变化,大概压缩比例如下图所示.