圖片壓縮知識梳理(8) WebP 使用詳解

1、WebP是什麼

WebPVectorDrawablePNGJPG一塊兒構成了Android中四種圖片的存儲格式,在學習這篇文章以前,最好能看一下下面的視頻和文章,這樣能對WebP有一個大概的瞭解:html

下面是上文對於WebP的概述,今天這篇文章,咱們就一塊兒來看如何在App中使用WebPandroid

WebP是一種支持有損壓縮和無損壓縮的圖片文件格式,派生自圖像編碼格式VP8。根據Google的測試,無損壓縮後的WebPPNG文件少了45%的文件大小,即便這些PNG文件通過其餘壓縮工具壓縮以後,WebP仍是能夠減小28%的文件大小。git

2、兼容性問題

VectorDrawable相似,WebP也存在兼容性的問題:github

  • Android 4.0之前,默認是不支持*.webp,這時候若是圖片源是*.webp,那麼就須要導入外部的依賴,將*.webp轉換成二進制流,再進行展現。
  • Android 4.0+Android 4.2.1之間,只支持徹底不透明的*.webp圖片。
  • Android 4.2.1以後,對於*.webp已經徹底支持,咱們徹底能夠像使用PNGJPG文件同樣使用它。

3、PNG/JPGWebP格式的互相轉換

目前,對於PNG/JPGWebP格式之間的互相轉換,主要有下面兩種方式:web

3.1 使用Google提供的標準工具

對於官方的轉換工具的介紹,能夠查看下面這篇文檔:developers.google.cn/speed/webp/… api

下面,咱們就來演示一下整個轉換的過程:

3.2 使用開源的轉換工具

此外,咱們也可使用開源的轉換工具:isparta bash

3.3 Android Studio自帶的轉換工具

Android Studio 2.3以後,已經內置了對於WebP格式轉換的功能,咱們只須要在圖片資源上點擊右鍵,彈出菜單的最後一個選項: 工具

以後能夠選擇轉換的質量,咱們採用默認的配置:
在下一個界面,咱們能夠經過拖動底下的遊標,來改變編碼的質量,並實時查看轉換後的圖片展現效果:

4、WebP常規方案

若是Android的版本爲4.2.1以上,那麼像使用普通圖片同樣就能夠了:學習

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.demo.lizejun.repotransition.WebPActivity">
    <ImageView
        android:id="@+id/web_p_1"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:src="@drawable/ic_bg"/>
</LinearLayout>
複製代碼

展現效果以下: 測試

5、WebP兼容低版本方案

假如當前的Android版本不支持webP,那麼就須要導入外部依賴:webp-android,關於兼容性的問題,你們能夠參考下面這篇文章: Android Webp 徹底解析 快來縮小apk的大小吧

6、參考文獻

1.Image Compression For Android Developers 2.WebP 探尋之路 3.Android Webp 徹底解析 快來縮小apk的大小吧 4.關於Android4.+(4.0~4.2.1)上無損、透明webp圖像不顯示問題分析

相關文章
相關標籤/搜索