1. 簡介
? WebP 是 Google 的一種可以同時提供有損壓縮(像 JPEG 一樣)和透明度(像 PNG 一樣)的圖片文件格式例书,不過與 JPEG 或 PNG 相比毁嗦,這種格式可以提供更好的壓縮。Android 4.0(API 級別 14)及更高版本支持有損 WebP 圖片空民,Android 4.3(API 級別 18)及更高版本支持無損且透明的 WebP 圖片。
2. WebP的優(yōu)勢
? WebP 的優(yōu)勢體現(xiàn)在它具有更優(yōu)的圖像數(shù)據(jù)壓縮算法墩剖,能帶來更小的圖片體積挑胸,而且擁有肉眼識別無差異的圖像質(zhì)量痒筒;同時具備了無損和有損的壓縮模式、Alpha 透明以及動畫的特性,在 JPEG 和 PNG 上的轉化效果都非常優(yōu)秀簿透、穩(wěn)定和統(tǒng)一移袍。
結論:
- PNG 轉 WebP 的壓縮率要高于 PNG 原圖壓縮率
- 支持有損與無損壓縮
- 轉換后的 WebP 體積大幅減少,圖片質(zhì)量也得到保障(同時肉眼幾乎無法看出差異)
- 轉換后的 WebP 支持 Alpha 透明和 24-bit 顏色數(shù)老充,不存在 PNG8 色彩不夠豐富和在瀏覽器中可能會出現(xiàn)毛邊的問題
網(wǎng)頁演示:
3. 將圖片轉換為 WebP 格式
? Android Studio 可以將 PNG葡盗、JPG、BMP 或靜態(tài) GIF 圖片轉換為 WebP 格式啡浊。您可以轉換單張圖片戳粒,也可以轉換包含多張圖片的文件夾。要轉換某張圖片或包含多張圖片的文件夾虫啥,請按照下列步驟操作:
右鍵點擊某個圖片文件或包含一些圖片文件的文件夾,然后點擊 Convert to WebP奄妨。
-
Converting Images to WebP 對話框隨即打開涂籽。默認設置取決于當前模塊的
minSdkVersion
設置。
studio_png轉webp.png 選擇有損或無損編碼砸抛。無損編碼僅在您的
minSdkVersion
設置為 18 或更高時可用评雌。如果選擇有損編碼,請設置編碼質(zhì)量直焙,并選擇是否在保存之前查看每張轉換后圖片的預覽效果景东。
? 您還可以選擇跳過編碼后版本大于原始版本的所有文件,或所有具有透明度通道或 Alpha 通道的文件奔誓。由于 Android Studio 僅允許您在minSdkVersion
設置為 18 或更高時創(chuàng)建透明的 WebP 圖片斤吐,因此,如果minSdkVersion
低于 18厨喂,系統(tǒng)會自動選中 Skip images with transparency/alpha channel 復選框和措。點擊 OK 以開始轉換。如果要轉換多張圖片蜕煌,只需一步即可完成轉換操作派阱,并且可以撤消轉換操作以便一次性還原已轉換的所有圖片。
? 如果您在上面選擇了無損轉換斜纪,系統(tǒng)會立即進行轉換贫母。圖片會在原始位置進行轉換。如果您選擇了有損轉換盒刚,請繼續(xù)執(zhí)行下一步腺劣。-
如果您選擇了有損轉換,并且選擇在保存之前查看每張轉換后圖片的預覽效果伪冰,那么 Android Studio 會在轉換過程中顯示每張圖片誓酒,以便您檢查轉換結果。(如果您未選擇查看預覽,Android Studio 會跳過此步驟靠柑,并立即轉換圖片寨辩。)在預覽步驟中,您可以單獨調(diào)整每張圖片的質(zhì)量設置歼冰,如下所述靡狞。
webp-convertqualitydefault_2x.png
? 在上圖中,左側是原始 JPG 圖片隔嫡,右側是有損編碼 WebP 圖片甸怕。對話框中顯示了原始圖片和轉換后圖片的文件大小。您可以向左或向右拖動滑塊以更改質(zhì)量設置腮恩,并能夠立即看到編碼圖片的效果和文件大小梢杭。
? 中間區(qū)域顯示了原始圖片和編碼后圖片的哪些像素存在差異。由于質(zhì)量設置為 75%秸滴,因此這兩種圖片之間幾乎沒有任何差異武契。下圖顯示了質(zhì)量設置為 0% 的同一編碼圖片。
- 點擊 Finish荡含。圖片會在原始位置進行轉換咒唆。
4. 將 WebP 圖片轉換為 PNG 格式
- 在 Android Studio 中右鍵點擊相應 WebP 圖片,然后點擊 Convert to PNG释液。
- 系統(tǒng)會顯示一個對話框全释,詢問您是要將該圖片轉換為 PNG 格式、刪除原始 WebP 文件误债,還是保留原始 WebP 文件以及新的 PNG 文件浸船。要刪除原始 WebP 文件,請點擊 Yes找前;要保留 WebP 文件以及 PNG 文件糟袁,請點擊 No。圖片會立即轉換躺盛。
5. 如何選擇適合的圖片格式:
不同的圖片格式適用于不同類型的圖片项戴。JPG 和 PNG 的壓縮過程截然不同,產(chǎn)生的結果也差異顯著槽惫。
PNG 和 JPG 之間的選擇往往取決于圖片本身的復雜程度周叮。下圖顯示的兩張圖片因開發(fā)者采用不同的壓縮方案而出現(xiàn)了截然不同的結果。左側的圖片包含許多小細節(jié)界斜,因此使用 JPG 進行壓縮的效率更高仿耽。右側的圖片包含連續(xù)的相同顏色,使用 PNG 進行壓縮的效率更高各薇。
WebP 格式支持有損和無損兩種模式项贺,對 PNG 和 JPG 來說都是理想的替代選擇君躺。唯一需要注意的是,它僅在搭載 Android 4.2.1(API 級別 17)及更高版本的設備上受到原生支持开缎。幸運的是棕叫,大多數(shù)的設備都滿足該要求。
下圖提供了一個簡單的可視化圖形來幫助您決定應使用的壓縮方案奕删。
6. 結尾
已知問題:
- Android 無法直接判斷WebP是動態(tài)還是靜態(tài)圖片俺泣。(建議用文件名區(qū)分)
- Android studio 無法將gif轉為WebP。(Google提供轉換gif為webp的工具“gif2webp”)