Gradle入門到實戰(二) — ImageOptimization安卓圖片轉換壓縮插件

上一篇咱們瞭解了Gradle的各個方面,本篇介紹一款安卓圖片優化轉換插件,目前已在項目中使用,可一鍵批量轉換壓縮圖片,webp轉換與png/jpg壓縮就是那麼簡單linux

GitHub項目地址:ImageOptimizationgit

ImageOptimization

安卓圖片優化插件:能有效減小apk安裝包大小,支持png/jpg轉爲webp,支持png圖片有損無損壓縮,支持jpg有損壓縮github

支持的os

macOSwindows10上已經測試經過,linux上暫時沒測試。web

引入ImageOptimization

在Project的build.gradle文件中:windows

buildscript { repositories { jcenter() } dependencies { ... classpath 'com.wanglei.image-optimization:optimization:1.0' } }

在你想要優化的module的build.gradle文件中引入插件: 如在多個module使用則每一個module都要引入插件app

apply plugin:'com.wanglei.image-optimization'

同步以後會生成以下任務:雙擊執行任務便可less

任務生成規則

imageOptimization_module名字_variant名字測試

配置項

在module的build.gradle文件中添加配置選項,配置插件優化的策略以及參數:gradle

ImageOptimization{ pluginStrategy = "compress" convertWebpQuality = 80 jpegCompressQuality = 90 appIconName = "ic_launcher" appIconRoundName = "ic_launcher_round" convertWebpType = "lossy" compressPngType = "lossless" pngCompressQuality = 79 }

ImageOptimization支持多項參數配置,靈活度高,可根據項目須要本身配置參數,可配置優先轉爲webp不能轉換的在進行圖片的壓縮,一樣你也能夠配置只進行圖片的壓縮而不轉爲webp優化

配置項參數說明

參數 是否必須 參數配置 參數說明
pluginStrategy 可配置"webp"或者"compress" 插件運行策略參數:如配置爲"webp"則會將圖片優先轉爲webp格式,若是不能轉換或者轉換失敗或轉換爲圖片更大則進行圖片的壓縮,如配置爲"compress"則只進行圖片的壓縮不會轉爲webp,此參數如不配置默認爲"compress"
convertWebpType 可配置"lossy"或者"lossless" webp轉換類型參數:"lossy"轉爲webp採用有損轉換模式,"lossless"轉爲webp採用無損模式,此參數默認爲"lossy"
compressPngType 可配置"lossy"或者"lossless" png圖片壓縮類型參數:"lossy"爲壓縮png採用有損壓縮模式,"lossless"爲壓縮png採用無損壓縮模式,此參數默認爲"lossy"
pngCompressQuality 可配置範圍爲[0,100] png圖片壓縮質量參數:默認爲80,建議使用默認便可,此參數爲compressPngType爲"lossy"時起做用,也就是有損壓縮才起做用
convertWebpQuality 可配置範圍爲[0,100] 圖片轉爲webp的質量參數:默認爲75,此參數爲谷歌建議的參數,建議不要更改,轉換webp有損模式下此參數才起做用
jpegCompressQuality 可配置範圍爲[84,100] jpg圖片壓縮質量參數:默認爲84
appIconRoundName 項目app圓形啓動圖標的名字,不包括圖片擴展名 如圓形啓動圖標爲:icon_round.png,這裏配置爲icon_round
appIconName 項目app啓動圖標的名字,不包括圖片擴展名 如啓動圖標爲:icon.png,這裏配置爲icon

圖片壓縮效果對比

PNG圖片

原圖 有損轉爲webp 無損轉爲webp lossy有損壓縮 lossless無損壓縮
   
50.05k 15.28k 30.30k 13.64k 42.21k

jpg圖片

原圖 有損轉爲webp lossy有損壓縮
7.91k 2.82k 5.17k

因爲博客園不能上傳webp圖片,上圖webp圖片沒法正常顯示,可到GitHub中查看具體對比

額外說明

插件運行的時候會有相應信息打印出:

 

安卓對webp圖片的支持


安卓不一樣sdk版本對webp的支持有所不一樣,具體以下:

sdk<14:不支持webp格式圖片
14<= sdk <18:支持webp格式圖片,可是不支持有透明通道的 webp格式圖片
sdk >=18:有透明經過的webp圖片也支持

此外若是想以無損方式將png/jpg圖片轉爲webp,須要的sdk版本最小爲18。

ImageOptimization對以上狀況都作了適配,你只需放心使用便可

 

.9.png圖片的處理

ImageOptimization插件對.9.png圖片不作任何處理,既不轉換也不壓縮保持原樣。

 

更多細節可到github查看:https://github.com/MISAYAWANGLEI/ImageOptimization

相關文章
相關標籤/搜索