在這一整個關於圖片壓縮的知識梳理過程當中,咱們介紹了四種圖片格式的基本原理、使用方式、優化方式,相信你們已經對他們有了一個基本的認識。bash
那麼在實際的開發過程中,咱們應當如何選擇合適的圖片格式呢?Google
提出了它們的建議,咱們能夠以此爲參考,在具體的場景中選擇合適的圖片格式。性能
對於前面介紹的四種圖片格式(VectorDrawable/WebP/PNG/JPG
),這幾種圖片的選擇標準能夠用下面這幅圖來表示,整個選擇的優先級爲:優化
VD > WebP > PNG > JPG
複製代碼
若是你們有閱讀前面一系列的文章,那麼應該會對這些選取的條件有一個基本的認識,下面就來簡要解釋一下每一個判斷條件所設置的含義:spa
Can the image be a VectorDrawable
code
兼容性問題:App
自己須要支持VectorDrawable
,對於Android 5.0
以上是默認支持的,而對於這5.0
如下的應用,則須要引入support
包的支持。圖片
圖片自己的問題:VectorDrawable
適用於那些小而簡單的圖片,若是圖片很大或者很複雜,那麼因爲柵格化所帶來的性能損耗有可能會致使最後得不償失。ip
Do you support WebP
這裏主要涉及到的是兼容性問題,對於Android 4.3
以上,默認支持WebP
。而若是是該Android
版本之下的平臺,那麼須要引入so
,而引入so
就有可能會增大APK
的大小,所以,須要在這之間進行權衡。資源
Does it need transparency
PNG
和JPG
的其中一個差別就是PNG
支持透明度,若是須要支持帶透明度的圖片,那麼就必須使用PNG
。開發
Is it simple or complex
在不須要支持透明度的狀況下,若是圖片較爲簡單,那麼咱們也可使用PNG
,由於它對於簡單圖像的壓縮效果更好。而若是圖片很複雜,那麼PNG
壓縮效果就不如JPG
,這時候,咱們就能夠採用JPG
。it
當咱們使用PNG
和JPG
時,應當儘量在用戶沒有察覺的狀況下,採用以前提到的優化手段,對這些資源進行壓縮。