將 WebP 另存為 GIF 的做法如下:在瀏覽器型的轉檔工具中開啟檔案、選擇 GIF 作為輸出格式,然後下載產生的檔案——當工具在本地端解碼 WebP 時,不需要上傳。人們會搜尋這個工作流程的原因是,WebP 是一種現代格式,但 GIF 幾乎是每一個聊天應用程式、較舊的影像編輯器、電子郵件用戶端,以及簡報投影片都能毫無問題接受的格式。誠實的做法是使用一款在當前瀏覽器分頁內解碼所選 WebP、請瀏覽器渲染每一個可見的影格、將這些像素對應到 GIF 調色盤,然後交給你一個可下載檔案的工具。這樣可以讓原始影像留在你的電腦上,並產生一個全新的 GIF,而不會覆蓋任何檔案。以下將實際逐步說明如何完成這個轉換、瀏覽器專用工具必須強制執行的限制,以及在哪些情況下 GIF 看起來會與原始 WebP 不一樣。

how to save as gif instead of webp
將 WebP 另存為 GIF 而無需重新上傳

為何人們想要 GIF 而非 WebP

WebP 的設計目標是在視覺品質大致等同於 JPEG 與 PNG 的前提下,提供更小的檔案,而它在這方面大致上是成功的。它也同時支援無失真編碼、透明,以及動畫於單一容器之中。取捨在於普及程度並不一致。令人意外的是,仍有許多接收端會靜悄悄地拒絕 WebP:某些聊天平台會對其進行降解析度或阻擋上傳、數個電子郵件用戶端會將它顯示為損壞的附件圖示,而常見影像編輯器的較舊版本則完全無法開啟該檔案。相比之下,GIF 已存在數十年,並被幾乎每一個面向消費者的應用程式視為基礎影像格式。

這就是為什麼這個問題往往出現在交付階段,而非設計階段。某人產出或下載了一個 WebP,嘗試將它貼到聊天視窗、附加到工單,或放進簡報中,結果遭到拒絕。將它另存為 GIF 是在不強迫重新設計的情況下,解決相容性問題最小的改動。使用者可以保留原始 WebP 作為品質來源,並為那些需要的地方取得一個可攜的 GIF 副本。

瀏覽器型 WebP 轉 GIF 工具實際上做了什麼

WebP 轉 GIF工具建立在一個簡單的承諾之上:所選的 WebP 永遠不會離開裝置。當選擇一個檔案時,網頁會將它讀取為本地檔案,請瀏覽器的影像解碼器渲染可見的像素,然後將每一個渲染出來的影格對應到 GIF 調色盤。編碼步驟會在解碼步驟完成後才進行,而輸出會以單一可下載的 GIF 形式交付,由網頁以 Blob 形式呈現。

那個流程帶來三個實質性的後果。第一,影像的任何部分都不會被上傳到轉檔伺服器、排隊進行遠端處理,或被工具儲存。第二,工具絕不會覆寫電腦上的任何檔案或資料夾;它會產生一個全新的下載檔,檔名由瀏覽器的儲存對話框決定。第三,工具強制執行的每一個限制,也是瀏覽器必須強制執行的限制,因為工作就發生在渲染此網頁的同一台機器上。

靜態 WebP 影像會透過標準瀏覽器影像解碼器處理,並成為單一影格的 GIF。動畫 WebP 則使用不同的程式碼路徑。當瀏覽器公開 ImageDecoder 功能時(例如目前的 Chrome),工具會讀取動畫中的每一個已解碼影格、將其解碼後的時間資訊帶入 GIF,並輸出一個持續循環播放的 GIF。尚未公開 ImageDecoder 的瀏覽器會清楚地被告知不支援動畫 WebP,而不是取得一個會悄悄遺漏影格的部分匯出。網頁會以明確的訊息停止作業,而不是悄悄只匯出第一個影格,這讓輸出範圍保持誠實。

如何將 WebP 另存為 GIF

轉檔本身包含三個動作,而大部分時間都是在等待瀏覽器,而非點擊操作。

  1. 選擇一個不超過 20 MB 的本地 WebP 檔案。開啟檔案選擇對話框,選擇你想要另存為 GIF 的 WebP。工具會直接從磁碟讀取該檔案;不會先將任何東西傳送到伺服器。
  2. 選擇「Convert to GIF」並等待。網頁會在當前分頁中解碼 WebP,從可見的 RGBA 像素建立 GIF 調色盤,然後編碼結果。對於靜態影像而言,這個過程很快;對於具有許多影格的動畫 WebP,則會明顯花費較長時間,因為每一個影格都必須依序進行解碼與色彩量化。編碼器模組只會在解碼步驟確認檔案可用之後才會載入。
  3. 下載 GIF 並在預定用途處檢查它。從瀏覽器的下載提示中儲存檔案,然後在將會使用它的應用程式或聊天視窗中開啟一次。這個最後的檢查很重要,因為唯一能證明轉檔確實解決原始問題的地方,就是那個目的地。

如果需要轉換數個檔案,請在同樣的分頁中一次處理一個。工具不支援批次處理,但也不會在檔案之間保留狀態,所以每一次轉換都是獨立的,且某一個檔案發生失敗,並不會影響下一個。

瀏覽器將強制執行的限制

瀏覽器專用工具無法悄悄地為單一影像配置數 GB 的記憶體,因此網頁在執行任何吃重的工作之前會設定明確的界線。這些限制並非保證每一個看似較小的檔案都很容易解碼——它們是工具將接受的外在範圍。

限制項目界線實際上的意義
選取的檔案大小最高 20 MB任何更大的檔案會在解碼前遭到拒絕,並附上明確訊息。
動畫的影格數1 到 50 個影格超出此範圍時,網頁會停止作業,而不是悄悄匯出部分 GIF。
每個影格的邊長每邊最多 4,096 像素更寬或更高的影格會被拒絕;來源通常需要先調整大小。
解碼畫布預算每個影格最多 3 百萬像素每個影格的解碼像素總數不能超過這個上限。
動畫 WebP 的瀏覽器支援具備 ImageDecoder 的瀏覽器若無此功能,網頁會拒絕動畫 WebP,而不是悄悄遺漏影格。
輸出像素預算受限於網頁的畫布限制完整的 GIF 輸出在每個影格上不能超過相同的像素上限。

如果觸及這些限制中的任何一個,網頁會回報問題,並完全不產生下載。對於解碼後畸形、過大、影格無法讀取,或使用不支援編解碼路徑的檔案,處理方式相同:明確的拒絕訊息,且磁碟上不會留下誤導性的部分 GIF。這並非聲稱每一個看似較小的檔案都會很便宜,只能說這些是工具將嘗試處理的硬性界線。

當 GIF 看起來不會與 WebP 完全相同時

GIF 是一種相容性格式,而非品質的升級。它的色彩模型遠小於現代 WebP:每一個可見影格都會被量化為最多 256 色的調色盤,而透明像素是以 GIF 的一位元透明度來表示,而非 WebP 的完整 alpha 色頻。因此,相片、漸層,以及半透明的藝術作品往往在轉檔後會出現色階斷層、較大的檔案大小,或明顯可見的邊緣變化。

在這裡,誠實的框架很重要。一個已經高效率壓縮過的 WebP,可能會產生一個磁碟上比來源檔案更大的 GIF。GIF 沒有等同於 WebP 預測編碼或區塊式色彩技巧的機制,所以節省的空間來自調色盤限制,而非聰明的壓縮。如果目標是縮小檔案,轉成 GIF 就是錯誤的選擇;只有在目的地堅持要求 GIF 時,GIF 才是正確的選擇。如需更廣泛的格式比較,涵蓋 JPEG、PNG 與 WebP 各自適合的時機,JPEG vs PNG vs WebP:你應該使用哪種影像格式?這份格式指南並列說明了各種取捨。

這個工具也不會保留 WebP 容器的中繼資料、ICC 設定檔、原始壓縮方式、精確的色彩表、超出 GIF 一位元透明度的 alpha 精確度,或 GIF 本身無法表示的進階動畫功能。請將這次轉檔視為產生一個全新的檔案,而非透明的直通處理。關於可靠工作流程的實用指引:

  • 從仍能滿足視覺需求的最小 WebP 開始;轉檔一個巨大的來源檔,只會讓輸出變得更大。
  • 避免只是為了將大型動畫用作大頭貼或表情符號而進行轉檔——在較小尺寸下,調色盤量化通常會表現得很糟。
  • 保留原始 WebP 作為品質來源。GIF 是可攜的副本,而非母版。
  • 在分享之前,於目的地的應用程式中(而不僅僅是在影像檢視器中)檢查下載下來的 GIF。

這個工具不會做的事

這個工具刻意只做一件事。它不會編輯個別影格、裁切或調整影像大小、新增標題、在轉檔後最佳化 GIF、從遠端 URL 擷取 WebP、轉檔影片,或將結果封裝於受密碼保護的封存檔中,也不保證能與每一個舊版 GIF 消費者相容。如果需要任何這些步驟,請在轉檔產生一個乾淨的 GIF 之後再執行。預先調整輸入大小通常是停留在每影格限制內最簡單的方式,而在現有 GIF 上加入標題則是一個獨立的工作流程,以與轉檔器相同的方式在本機檔案上執行。當檔案已存在於磁碟上,且你需要不同的調色盤取捨、分割,或文字浮水印時,相關的 GIF 工具是自然的下一站。

快速工作流程檢查清單

在轉檔前後,使用這個簡短的清單作為健全性檢查:

  • 確認目的地確實接受 GIF——如果是的話,這就是完成這項工作的正確工具。
  • 將 WebP 修剪至 20 MB 以下,並保持在 4,096 像素邊長與 3 百萬像素影格限制之內。
  • 對於動畫 WebP,請使用公開 ImageDecoder 的當前瀏覽器,以確保所有影格都能完整往返。
  • 下載後,在將會使用它的應用程式或聊天視窗中開啟 GIF 一次。
  • 保留原始 WebP——GIF 是可攜的副本,而非新的母版。

如果輸出結果令人意外,最常見的原因是調色盤的變更,而非轉檔器的錯誤。在轉檔前以更少的顏色重新匯出 WebP,或者接受 GIF 作為相容性副本,並在目的地允許的地方使用 WebP。

相關閱讀:如何在瀏覽器中為 Android 上的 GIF 加入文字。