在 Mac 上將 WebP 轉換成 GIF 而不上傳檔案,只需要一個 20 MB 的純瀏覽器步驟:選擇本機的 WebP、選取 Convert to GIF,然後儲存下載的結果。網頁會透過 macOS 選檔視窗從磁碟讀取檔案,在同一個分頁中解碼可見的 RGBA 畫面格,將其對應到最多 256 色 GIF 調色盤的格式,建立一個新的 Blob 並下載到你的 Downloads 資料夾,所以你的 WebP 從未離開這台 Mac。靜態圖片會變成一張單畫面格的 GIF;動畫 WebP 則會在支援 ImageDecoder API 的瀏覽器中(包括目前的 Chrome)變成一個連續循環播放的 GIF;在不支援的瀏覽器中則會顯示清楚的錯誤訊息而不會悄悄只匯出第一個畫面格。所有轉換都在這個分頁本身完成,沒有伺服器在排隊處理檔案,也不需要帳號,而且網頁絕不會覆寫你電腦上的任何檔案或資料夾。20 MB 的輸入上限以及每個解碼後畫面格 4,096 像素的邊長限制是這個網頁在配置大型畫布之前就強制執行的硬性上限,這讓一般 Mac 上的解碼作業保持可預測性。

convert webp to gif mac
在 Mac 上將 WebP 轉換成 GIF 而不上傳檔案

為什麼 Safari 和 macOS 工作流程會在 WebP 上出問題

WebP 在現代網路上隨處可見,但在 Mac 上卻不一定都受歡迎。Safari 渲染靜態 WebP 時不會出問題,但有幾個常見的目標位置仍然無法像你預期的那樣辨識這個格式:

  • 當附件被轉寄時,Messages 可能會以無法預期的方式丟失或轉換 WebP。
  • 在較舊版本的郵件用戶端上,收件者可能會看到一個破圖圖示而不是圖片。
  • 論壇上傳程式、內容管理系統,以及許多聊天整合服務會直接拒絕 .webp 上傳。
  • 大頭貼欄位和頭像插槽通常只接受 JPG、PNG 或 GIF。

當一個檔案需要傳送到任何接受 GIF 的地方時,轉換是最實際的做法。關鍵在於你選擇哪一條轉換路徑。透過 Homebrew 安裝 ffmpeg 會佔用磁碟空間,而且需要信任第三方套件。一個可下載的轉換器應用程式則代表要多管理一個二進位檔,以及它自己的更新週期。雲端轉換器的代價則是上傳本身、伺服器排隊的等待時間,以及相信檔案會離開你的 Mac。

純瀏覽器的工具可以避開這三種代價。WebP to GIF 轉換器透過 macOS 檔案選取視窗直接讀取本機 WebP 檔案,在同一個 Safari 或 Chrome 分頁內解碼每個可見畫面格,將像素對應到 GIF 調色盤,然後交給你一個可直接下載的 .gif,不需要上傳。macOS 對這個下載檔案的處理方式,跟你從其他網站儲存任何檔案時一樣,因此新的 GIF 會出現在你原本檔案旁方的 Downloads 資料夾中。

工具讀取什麼、寫入什麼

這個網頁在配置記憶體之前就設定了明確的限制,所以轉換作業不會在大型檔案上跑到一半卡住。這些限制是寫死在網頁本身中,而不是在雲端伺服器上,而且清楚說明了這個工具能完成什麼、會拒絕什麼:

界線網頁強制執行的值
輸入來源透過 macOS 選檔視窗選擇的本機 WebP 檔案
最大輸入大小20 MB
動畫輸入的畫面格數1 到 50 個畫面格
每個解碼後畫面格的最大邊長4,096 像素
最大解碼後畫布每個畫面格 3 百萬像素
輸出由瀏覽器儲存為標準 .gif 檔案
處理位置僅限目前的瀏覽器分頁
輸出中的色彩模型GIF 調色盤,每個畫面格最多 256 色
輸出中的透明度GIF 的一位元透明度

這些限制並不保證每個看起來很小的 WebP 都很容易解碼。它們是一個清楚的範圍:如果檔案格式損壞、太大、包含太多畫面格、解碼後的畫面格超出像素預算,或使用了不支援的編解碼路徑,網頁會回報問題並跳過下載,而不是產生誤導的結果。

用 3 個步驟在 Mac 上將 WebP 轉換成 GIF

  1. 在你 Mac 上的目前瀏覽器中開啟 WebP to GIF 頁面,然後點擊以選擇一個本機 WebP 檔案。選檔視窗接受單一最大 20 MB 的 WebP;任何更大的檔案會在網頁要求瀏覽器解碼之前就被拒絕,這能避免分頁在大型下載上卡住。
  2. 選擇 Convert to GIF,然後等待網頁解碼可見的畫面格並將其編碼為 GIF。對於靜態 WebP 來說這只有一個一個解碼後的畫面格;對於支援 ImageDecoder API 的瀏覽器中的動畫 WebP,網頁會讀取 1 到 50 個範圍內的每個畫面格,並將每個畫面格解碼後的時間資訊帶入循環播放的輸出中。
  3. 下載 GIF,並在實際要使用的目的端應用程式或瀏覽器中先開啟一次,例如 Messages、Mail、Finder 預覽,或任何你實際需要的地方,再分享出去。如果看起來有任何問題,原本的 WebP 仍然在你的磁碟上,轉換過程從未覆寫過它。

靜態 vs. 動態 WebP:兩種不同的處理分支

這個工具會根據瀏覽器支援什麼來走兩條路徑中的一條。靜態 WebP 會使用標準的瀏覽器影像解碼器進行解碼,並成爲一張單畫面格的 GIF。這個結果是 GIF 容器能容納的最接近你單張影像的東西,透明像素透過 GIF 的一位元透明度來表示,而不是 WebP 能承載的完整 Alpha 通道。

動畫 WebP 會在瀏覽器支援 ImageDecoder 功能時走該功能。在目前的 Chrome 瀏覽器中,網頁會讀取動畫解碼後的畫面格,將每個畫面格解碼後的時間資訊帶入 GIF,並寫出一個連續循環播放的 GIF。並非每個瀏覽器都已支援 ImageDecoder;Safari 跨版本的支援狀態也參差不齊。如果你在不支援該功能的瀏覽器中放入一個動畫 WebP,網頁會停止作業並顯示清楚的訊息,而不是悄悄只匯出第一個畫面格。這種失敗模式是有意爲之的:它讓輸出範圍保持誠實,避免交給你一個因為省略動作而錯誤呈現原本動畫的 GIF。

如果你 Mac 上的 Safari 拒絕處理動畫,但 Chrome 接受,那麼在 Chrome 中開啟同一個頁面就是最實際的替代方案。這個網頁是純瀏覽器運作,不需要安裝任何東西,所以切換瀏覽器的代價不過是一個分頁而已。

你的 WebP 和新 GIF 之間可能會產生什麼變化

GIF 的色彩模型比現代的 WebP 小得多。在轉換過程中,每個可見畫面格都會被量化到最多 256 色的 GIF 調色盤,而透明像素則以 GIF 的一位元透明度來表示。這對 Mac 使用者來說會產生三個可預期的影響:

  • 照片和漸層會出現條紋化現象。膚色、天空漸層,以及平滑的陰影過渡會失去 WebP 能承載的細膩抖動效果。
  • 輸出檔案可能會變大。一個原本就高效壓縮的 WebP 可能會產生同等大小或更大的 GIF,因為 GIF 容器比 WebP 更舊且效率更低。
  • 柔邊會變硬。經過反鋸齒處理的文字、圓角,以及細緻的 UI 細節在進入有限調色盤和一位元透明度後,可能會出現階梯狀的鋸齒。

這個網頁並不聲稱能保留 WebP 容器的 metadata、ICC 色彩設定檔、原本的壓縮方式、精確的色表、超出 GIF 透明度的 Alpha 精度,或 GIF 本身無法表示的動畫功能。如果一個 WebP 依賴部分 Alpha 來柔化邊緣,那個細節會是 GIF 中第一個再次被柔化的部分。

傳送 GIF 前的快速檢查

GIF 是一種相容性格式,而不是品質升級。在發布之前,請在你實際打算使用的尺寸與位置檢查下載的檔案,特別是當它包含文字、品牌色彩、漸層或細小細節時。一個 64-by-64 的大頭貼插槽、Mail 簽名檔,以及 Discord 表情符號插槽,對同一組像素的渲染方式差異很大,而不會在全螢幕預覽中顯示出來的條紋化問題,可能會在縮圖中突然冒出來。

若要建立可靠的 Mac 工作流程:

  • 從仍能滿足你需求的最小 WebP 開始;無法保證 GIF 一定比來源檔案小。
  • 避免僅僅為了用做小頭像或表情符號插槽,而去轉換一個大型動畫。
  • 把原本的 WebP 當作品質來源,僅在目標位置需要時才使用 GIF。
  • 在分享連結、訊息或附件之前,先在實際的目的端開啟 GIF 一次。

轉換之後:如果 GIF 大到無法傳送

有時候 GIF 下載完成後,對於你想要使用的地方來說太大了。這個結果是可以預期的;對於現代來源影像來說,GIF 並不是一個保證能壓縮的格式。與其用更差的輸出再跑一次轉換,不如接著使用專門為這一步打造的工具。在不損失動畫品質的情況下縮小 GIF 檔案的教學文章,展示了一條純瀏覽器的路徑,使用更小的調色盤重新編碼 GIF,同時保持可見畫面格完整,當目標位置拒絕的是檔案大小而不是格式時,這才是正確的下一步。

這個轉換工具不會編輯個別畫面格、裁切或調整影像大小、加上標題、在轉換後最佳化 GIF、擷取遠端 URL、轉換影片,或將結果包成有密碼保護的封存檔。這些每一項都是各自獨立的決定,各自獨立的按鈕。把轉換、最佳化和調整大小視為獨立步驟,是讓你的 WebP 保持為品質來源,同時仍然能傳送一個可流通檔案的最乾淨方式。

如果你正在權衡選項,用瀏覽器製作工具為 GIF 加上文字對此有詳細說明。