Android開發(fā)-圖片壓縮框架-Luban(魯班)

1.簡述

Android開發(fā)過程中圖片壓縮很常見,實現(xiàn)有很多方式,經(jīng)過多種方式對比后,這里使用很好的方式就是使用Luban(魯班),對比原圖與壓縮后的圖片逆向推算出來的壓縮算法。 壓縮率真的很高,并且很清晰?;久霘ⅲ褂孟到y(tǒng)的壓縮方式等。使用,也算很簡單。

2.引用

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

github直達

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)啟動 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)問題時調(diào)用
          }
        }).launch();

4.測試結(jié)果

拍攝圖片大小: 壓縮前: 10.0 MB
拍攝圖片大小: 壓縮后: 258 KB

圖片清晰度沒有太大變化,大概壓縮比例如下圖所示.

無標(biāo)題.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容