WebP 圖片 (.webp)
RFC 標準WebP 是由 Google 開發的現代圖片格式,為網路圖片提供優異的無損與有損壓縮,同時支援 alpha 通道透明度與動畫影格。
將 JPG 轉換為 WEBP
免費的瀏覽器端 JPG 轉 WEBP 轉換器。在您的裝置上即時轉換檔案。
線上壓縮 WebP
具隱私保障 - 檔案絕不會離開您的裝置
檢查與中繼資料
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 WebP 檔案:
位元組層級標頭簽章(檔案簽章)
作業系統與檔案分析工具透過檢查開頭的二進位位元組序列來識別 WebP 檔案:
十六進位簽章(偏移量 0):
52 49 46 46 ?? ?? ?? ?? 57 45 42 50ASCII 表示法: RIFF????WEBP
標準化: RFC 6386 / RIFF 容器規格
技術規格
| 容器架構 | 資源互換檔案格式(RIFF)容器,帶有 'WEBP' FourCC |
| 壓縮 | 有損 VP8 預測影格內編碼與無損 VP8L 空間熵編碼 |
| 位元組序 | 適用於 RIFF 區塊大小與容器標籤的低位元組序(Little-Endian) |
| 色彩空間 | sRGB, 內嵌 ICC 設定檔(透過 VP8X 擴充標頭) |
| 色版與結構 | RGB + Alpha(每個色彩通道 8 位元) |
| 最大尺寸 | 16,383 x 16,383 像素(14 位元無號整數) |
| 透明度 | 有損與無損模式皆支援完整的 8 位元 alpha 通道透明度 |
| 串流與漸進式 | 透過增量式 VP8 區塊解碼支援漸進式解碼 |
技術比較矩陣:WebP 對比競爭格式
| 技術屬性 | WebP (目前) | JPEG | PNG | AVIF |
|---|---|---|---|---|
| 支援的壓縮模式 | 同時支援有損(VP8)與無損(VP8L) | 僅支援有損 | 僅支援無損 | 同時支援有損(AV1)與無損 |
| Alpha 透明度 | 支援(有損與無損皆支援) | 不支援 | 支援 | 支援 |
| 動畫支援 | 支援(具備影格延遲的多影格動畫) | 不支援 | 需要 APNG 擴充功能 | 支援(AVIF 圖片序列) |
| HDR / 寬廣色域 | 僅限 8 位元 sRGB | 8 位元標準 | 8 位元與 16 位元 | 10 位元與 12 位元原生 HDR |
| 瀏覽器支援 | 許多現行瀏覽器皆支援;相容性取決於瀏覽器版本與平台 | 廣泛支援;可用性因產品與版本而異 | 廣泛支援;可用性因產品與版本而異 | 許多現行瀏覽器皆支援;可用性各有不同 |
常見損壞模式與十六進位修復指南
瀏覽器無法顯示 WebP 圖片,或顯示圖片損壞圖示。
根本原因: RIFF 酬載長度標頭(第 4 至 7 個位元組)與磁碟上的實際位元組長度不符。
修復: 重新計算總檔案大小減去 8 個位元組,並在位移 0x04 處修補 4 個位元組的 Little-Endian 無號整數。
解碼器失敗並顯示「Invalid FourCC: Expected WEBP」。
根本原因: 第 8 至 11 個位元組不包含 ASCII 字元「WEBP」。
修復: 驗證位移 0x08 是否包含 0x57 0x45 0x42 0x50(「WEBP」),且區塊標頭符合「VP8 」或「VP8L」。
安全性分析與解析器攻擊向量
在發生 CVE-2023-4863 後,WebP 解析機制受到了嚴格的安全性審查,促使各大網頁瀏覽器全面加強沙箱防護。
已知攻擊向量
- CVE-2023-4863:當 libwebp 的 BuildHuffmanTable 函式解析無效的無損霍夫曼表時發生堆積緩衝區溢位,允許遠端程式碼執行。
- 當解碼過大的動畫影格畫布尺寸時發生整數溢位。
防禦最佳實務: 確保所有用戶端與伺服器端程式庫皆使用 libwebp 1.3.2 或更新版本。在記憶體沙箱化的背景執行緒中解碼 WebP 檔案。
歷史起源與里程碑
主要優勢與優點
- 在相似的視覺品質下,有損 WebP 可以產生比 JPEG 更小的檔案,但結果會因圖片與編碼器而異。
- 針對某些圖片,無損 WebP 可以產生比 PNG 更小的檔案;結果會因圖片與編碼器而異。
- 單一統合格式可處理相片、帶有透明度的圖形以及輕量動畫片段。
技術限制與缺點
- 最大尺寸上限為 16,383 × 16,383 像素,無法支援超高解析度的全景影像。
- 僅支援 8 位元色彩深度(不支援原生 10 位元或 12 位元 HDR)。
- 編碼複雜的有損圖片需要比舊版 JPEG 編碼器更多的 CPU 週期。
有趣的技術冷知識
- WebP 是以 Google 開源 VP8 視訊編解碼器的關鍵影格內預測演算法為基礎。
- WebP 使用的 RIFF 容器與傳統 Microsoft AVI 和 WAV 檔案所使用的容器架構完全相同。
- 動態 WebP 與 GIF 檔案大小取決於動畫內容與編碼設定,因此請比較每種動畫的輸出結果。
常見技術問題
WebP 可以完全取代 PNG 與 JPEG 嗎?
WebP 是許多網頁圖片的好選擇,但在每一個工作流程中,它並無法完全取代 PNG 或 JPEG。請根據圖片內容、透明度需求以及您的受眾所使用的瀏覽器或軟體來選擇格式。
為什麼 WebP 的無損壓縮比 PNG 更有效率?
WebP 無損壓縮使用了空間預測器、色彩轉換、色彩快取以及熵編碼。相較於 PNG 的檔案大小取決於圖片內容與編碼器設定。
WebP 支援動畫嗎?
支援。WebP 支援多影格動畫、可變影格延遲、每影格的 Alpha 透明度以及處置方法。其相對於 GIF 的檔案大小取決於動畫內容與編碼設定,請自行比較結果。
相關的 WebP 轉換對
將 JPEG 圖片轉換為 WebP 可以在具備相近視覺品質的同時縮減檔案大小,不過實際結果會因圖片內容與編碼設定而異。
將 WebP 轉換為 JPEG 可以讓靜態圖片更容易在不支援 WebP 的軟體中使用;JPEG 無法保留透明度或動畫。
將 PNG 圖片轉換為 WebP 可以減少檔案大小,同時保留透明度;結果取決於使用的是有損或無損編碼,以及圖片內容。
將 WebP 轉為 PNG 會為支援 PNG 的軟體建立一張靜態圖片;它無法保留 WebP 動畫,且無法復原有損來源的細節。
將動態 WebP 檔案轉換為動態 GIF,可在現代點陣動畫格式與需要廣泛相容性的舊版網頁標準之間搭起橋樑。
從 WebP 圖形製作單頁 PDF,適用於文件或審核流程。瀏覽器會將其重新繪製為圖片,因此不會保留 WebP 資料與動態效果。