1.簡(jiǎn)述
Android開發(fā)過程中圖片壓縮很常見,實(shí)現(xiàn)有很多方式,經(jīng)過多種方式對(duì)比后,這里使用很好的方式就是使用Luban(魯班),對(duì)比原圖與壓縮后的圖片逆向推算出來的壓縮算法夫啊。 壓縮率真的很高,并且很清晰辆憔∑裁校基本秒殺,使用系統(tǒng)的壓縮方式等虱咧。使用叛本,也算很簡(jiǎn)單。
2.引用
//在build.gradle中引入框架
implementation 'top.zibin:Luban:1.1.8'
3.代碼使用
Luban.with(this) //context
.load(imgfile) // 需要壓縮的圖片file
.ignoreBy(100) //壓縮率 彤钟,默認(rèn)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 壓縮開始前調(diào)用来候,可以在方法內(nèi)啟動(dòng) loading UI
}
@Override
public void onSuccess(File file) {
// TODO 壓縮成功后調(diào)用,返回壓縮后的圖片文件
//如果希望替換原圖可以執(zhí)行這行
file.renameTo(imgfile);
}
@Override
public void onError(Throwable e) {
// TODO 當(dāng)壓縮過程出現(xiàn)問題時(shí)調(diào)用
}
}).launch();
4.測(cè)試結(jié)果
拍攝圖片大小: 壓縮前: 10.0 MB
拍攝圖片大小: 壓縮后: 258 KB
圖片清晰度沒有太大變化,大概壓縮比例如下圖所示.
無標(biāo)題.png