一、概述
在這一整個關於圖片壓縮的知識梳理過程中,我們介紹了四種圖片格式的基本原理、使用方式、優化方式,相信大家已經對他們有了一個基本的認識。
那麼在實際的開發過程當中,我們應當如何選擇合適的圖片格式呢?Google
提出了它們的建議,我們可以以此為參考,在具體的場景中選擇合適的圖片格式。
二、如何選擇合適的圖片格式
對於前面介紹的四種圖片格式(VectorDrawable/WebP/PNG/JPG
),這幾種圖片的選擇標準可以用下面這幅圖來表示,整個選擇的優先順序為:
VD > WebP > PNG > JPG
複製程式碼
如果大家有閱讀前面一系列的文章,那麼應該會對這些選取的條件有一個基本的認識,下面就來簡要解釋一下每個判斷條件所設定的含義:
-
Can the image be a VectorDrawable
-
相容性問題:
App
本身需要支援VectorDrawable
,對於Android 5.0
以上是預設支援的,而對於這5.0
以下的應用,則需要引入support
包的支援。 -
圖片本身的問題:
VectorDrawable
適用於那些小而簡單的圖片,如果圖片很大或者很複雜,那麼由於柵格化所帶來的效能損耗有可能會導致最後得不償失。 -
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
。
當我們使用PNG
和JPG
時,應當儘可能在使用者沒有察覺的情況下,採用之前提到的優化手段,對這些資源進行壓縮。