Android黑科技,圖片終極壓縮

一、支持自定義配置、不失真和批量處理

二、圖片上傳為什么要壓縮
1、圖片服務(wù)器空間限制,磁盤昂貴
2、網(wǎng)絡(luò)不穩(wěn)定,大文件需要斷點續(xù)傳
3、盡可能避免安卓OOM異常
4、后臺約定的規(guī)則<200KB
5、需要上傳原圖的應(yīng)用有醫(yī)院臨床項目、金融銀行

三、圖片壓縮流程
1、遞歸每張圖片
2、設(shè)置圖片格式 Bitmap.CompressFormat.JPG
png, jpg,webp
3、質(zhì)量壓縮bitmap.compress(format,quality,baos)
由于png是無損壓縮,所以設(shè)置quality無效(不適合作為縮略圖)
采樣率壓縮BitmapFactory.Options.inSampleSize
縮小圖片分辨率,減少所占用磁盤空間和內(nèi)存大小
縮放壓縮canvas.drawBitmap(bitmap, null,rectF,null)
減少圖片的像素,降低所占用磁盤空間大小和內(nèi)存大小,可用于緩存縮略圖
JNI調(diào)用JPEG庫
Android的圖片引擎使用的是閹割版的skia引擎,去掉了圖片壓縮中的哈夫曼算法
4、像素修復(fù)
5、返回壓縮
6、完成壓縮

demo:https://github.com/ApeCold/Learn_Compress_Sample

參考:
Luban框架https://github.com/Curzibn/Luban
缺點
1、當(dāng)沒有設(shè)定壓縮路徑時,拋異常無閃退
2、源碼中,壓縮比率固定值60,無法修改
3、壓縮配置,參數(shù)不太適應(yīng)真實項目需求
4、不能指定壓縮大小,比如100KB以內(nèi)
https://github.com/zetbaitsu/Compressor

?著作權(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)容