圖片壓縮知識梳理(9) 選擇合適的圖片格式

澤毛發表於2017-12-21

一、概述

在這一整個關於圖片壓縮的知識梳理過程中,我們介紹了四種圖片格式的基本原理、使用方式、優化方式,相信大家已經對他們有了一個基本的認識。

那麼在實際的開發過程當中,我們應當如何選擇合適的圖片格式呢?Google提出了它們的建議,我們可以以此為參考,在具體的場景中選擇合適的圖片格式。

二、如何選擇合適的圖片格式

對於前面介紹的四種圖片格式(VectorDrawable/WebP/PNG/JPG),這幾種圖片的選擇標準可以用下面這幅圖來表示,整個選擇的優先順序為:

VD > WebP > PNG > JPG
複製程式碼

圖片壓縮知識梳理(9)   選擇合適的圖片格式

如果大家有閱讀前面一系列的文章,那麼應該會對這些選取的條件有一個基本的認識,下面就來簡要解釋一下每個判斷條件所設定的含義:

  • 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 PNGJPG的其中一個差異就是PNG支援透明度,如果需要支援帶透明度的圖片,那麼就必須使用PNG

  • Is it simple or complex 在不需要支援透明度的情況下,如果圖片較為簡單,那麼我們也可以使用PNG,因為它對於簡單影象的壓縮效果更好。而如果圖片很複雜,那麼PNG壓縮效果就不如JPG,這時候,我們就可以採用JPG

當我們使用PNGJPG時,應當儘可能在使用者沒有察覺的情況下,採用之前提到的優化手段,對這些資源進行壓縮。

相關文章