當 GIF 的檔案大小超過你想分享的平台上傳或附件限制時,它就顯得過於龐大,而最乾淨的解決方法通常是將你實際需要的影格擷取為無失真的 PNG,而不是將動畫再透過另一輪失真壓縮處理。由於每個影格都儲存各自的調色盤與時間資料,動畫 GIF 動輒落在 5–20 MB 的範圍,而平台的上傳上限 — Discord 約 8 MB、Twitter 約 15 MB、WhatsApp 約 16 MB — 遠低於許多真實動畫的大小。當壓縮持續產生難看的色彩條紋,或者你本來就只需要動畫中的一兩張靜止畫面時,將影格擷取為 PNG 能提供無失真的影像,你可以個別調整大小、編輯或附加。GIF Splitter 會在你的瀏覽器中本機解碼動畫,將每個影格的清除行為套用至邏輯畫布,並將每個可見影格匯出為編號的 PNG,讓你個別下載。

gif too heavy
GIF 太過龐大而無法分享?擷取你需要的影格

為何過於龐大的 GIF 偶爾需要的是影格,而不是壓縮

人們會在搜尋框中輸入「gif too heavy」的原因有很多,而正確的解決方法取決於檔案解套後他們究竟想對檔案做什麼:

  • 檔案在送達收件者之前,就被聊天應用程式、電子郵件附件限制或內容管理系統拒絕。
  • 動畫在低頻寬連線或較舊的手機上會卡頓,因為解碼器正在被位元組數量壓垮。
  • 原始創作者分享的是較長或高影格率的動畫,而該平台根本不是為了這種尺寸設計的。
  • 動畫中只有一個瞬間實際有用 — 一個反應影格、一張截圖、一格分鏡,或一張說明文件靜止畫面。
  • 你需要無失真的靜止畫面用於設計審查、簡報或印刷品,而不希望出現積極的 GIF 調色盤縮減所帶來的色彩條紋。

大多數指南會直接跳到「壓縮 GIF」 — 通常透過減少影格數、降低調色盤,或執行最佳化工具。當目標仍是將動畫以動畫形式分享時,這是有效的。一旦目標已經改變,它就不再是適合的工具:你不再需要 3 秒的循環動畫,你需要的是影格 14 的一張乾淨 PNG。將一個過於龐大的 GIF 拆成可見影格,能將「重量」的問題轉化為「選擇」的問題,而選擇是能靠眼睛,而不是靠微調編碼器來完成的。

過於龐大的 GIF 與擷取出的 PNG 影格:差異為何

一旦動畫被拆解成個別的 PNG 檔案,資料的每個實用屬性都會改變 — 檔案大小、格式、透明性,以及其他應用程式處理它的方式。下表比較出原始動畫與你從 GIF Splitter 取得的影格之間的差異。

屬性 原始過於龐大的 GIF 擷取出的 PNG 影格
檔案格式 單一動畫 GIF,索引色彩 每個可見影格一張 PNG,RGBA
動畫時間 保留於檔案中 未嵌入;以每影格的參考延遲顯示
透明性 1 位元,套用於每個影格區塊 畫布保持透明的位置為完整 Alpha
擷取後的典型用途 以動畫形式分享 放入文件、簡報、模型或影像編輯器中
單一項目檔案大小 一個大型單一檔案 許多較小的檔案,每個檔案大小等於一張完整畫布
平台上傳行為 超過平台上限時常遭拒絕 被視為一般靜止影像附件
來回重新轉為動畫 已是來源 需要在 GIF 製作工具中重新組裝

最重要的單一轉變在於格式:PNG 是具有完整 Alpha 的靜止影像容器,而幾乎每個聊天應用程式、文件編輯器和內容管理系統都接受 PNG,沒有動畫 GIF 所受到的那種嚴格上傳限制。檔案大小的故事也從「一個大東西」變成「許多小東西」,這對上傳佇列和電子郵件用戶端來說是更友善的形態。

如何從過於龐大的 GIF 擷取 PNG 影格

擷取完全在目前的瀏覽器分頁中執行,因此過於龐大的 GIF 本身從不離開你的裝置。以下每個步驟都直接對應到 GIF Splitter 頁面上的一個控制項。

  1. 使用頁面上的檔案選擇器,從電腦中選擇一個上限 20 MB 的動畫 GIF。
  2. 選擇「Extract PNG frames」並等待本機合成步驟完成。頁面會讀取每個影像區塊,在正確的位置套用前一個影格的清除指令,並繪製出完整的可見畫布。
  3. 檢視編號的預覽。每個預覽會列出其影格編號、畫布大小和解碼後的顯示延遲,讓你能一眼判斷出從原始龐大 GIF 中實際需要哪些靜止畫面。
  4. 使用每個預覽旁的個別下載連結,下載你需要的完整 PNG 影格。沒有 ZIP 封存檔,也沒有打包下載 — 每個連結都指向一個真實的 PNG Blob。
  5. 在刪除來源檔之前,於影像檢視器中開啟第一張、中間一張與最後一張匯出的 PNG,並與原始動畫進行比較,特別留意只變動畫布一部分的轉場效果。

如果輸入因任何原因遭拒,頁面會顯示清楚的訊息,且不會提交一份不完整的影格清單,因此龐大的檔案不會留下一個需要清理的半成品擷取結果。

擷取出的 PNG 包含什麼 — 又不包含什麼

這些 PNG 是完整的可見畫布,而不是 GIF 編碼器可能儲存在磁碟上的原始增量矩形。這個區別很重要,因為匯出原始區塊會產生誤導的縮圖和不完整的影像 — 這正是當來源已經過於龐大而無法處理不當時,會浪費時間的那種輸出。

每個影格實際取得的內容:

  • 在動畫中該時刻的完整邏輯畫布,包含由較早影格所繪製或還原的任何內容。
  • 畫布仍有透明像素處的完整 Alpha 透明性 — PNG 支援 Alpha,因此透明區域能在讀取 Alpha 的編輯器中乾淨地來回轉換。
  • 影格編號,以解碼後的 GIF 影像順序從一開始。
  • 解碼後的顯示延遲(以毫秒為單位),作為排序的參考資訊顯示,而不是作為任何特定播放器或平台會遵守原始時間的保證。
  • 由來源檔名所衍生的檔名加上帶前置零的影格編號(例如 animation-frame-01.png),這能在檔案管理員中依動畫順序保持檔案。

你不會取得的內容:

  • 所有影格的 ZIP 封存檔。此工具刻意提供個別下載,而非假裝一個集合已被打包。
  • 裁剪至變動矩形、調整大小、縮圖聯絡表頁面,或任何燒入影像中的文字標籤。
  • 重新編碼的動畫 GIF。如果之後你需要較小或不同尺寸的動畫,那是另一個調整大小或最佳化的步驟。
  • GIF 註解、應用程式擴充,或任何瀏覽器解碼器無法讀取的影格。
  • 伺服器上的永久副本。解碼後的影格只以記憶體中的 Blob 形式存在,一旦你更換輸入、離開頁面或關閉分頁,就會消失。

對於想要得到較小最終動畫而非靜止畫面的讀者,在審核完影格之後,相關的 GIF Optimizer 和 GIF Resizer 工具即可接手處理。

過於龐大的 GIF 檔案的安全限制

動畫檔案解壓縮後通常遠大於其原始位元組大小,因此分割器的限制是經過刻意設計的,在排定龐大的上傳之前值得先了解:

  • 選取的 GIF 最多可達 20 MB。
  • 畫布任一邊最多 4,096 像素。
  • 任何單一影格不得超過三百萬像素。
  • 頁面接受最多 50 個影像影格,並在開始建立 PNG 下載之前,同時檢查總區塊工作量與合併後的輸出像素。

這些限制加起來能防止一個看起來很小的龐大 GIF 讓瀏覽器分頁配置不合理數量的畫布像素,進而拖慢整台機器的速度。如果輸入超過限制,頁面會在開始任何擷取之前就將它拒絕,因此不會提交任何不完整的影格清單。如果你的瀏覽器無法配置所需的畫布或無法解碼提供的 GIF,則操作會停止,而不是提供一個損壞或標記錯誤的檔案 — 對於一個已經過於龐大而無法處理不當的輸入,這才是正確的行為。

下載後處理擷取出的 PNG

一旦影格以 PNG 形式存到磁碟上,在刪除或取代原始龐大 GIF 之前,請將擷取出的清單視為一次視覺稽核。開啟第 1 影格、中間影格與最後影格,並與原始動畫進行比較,留意只變動畫布一部分的轉場 — 例如閃爍的游標、移動的貼圖、部分的背景更新。這些瞬間是最有可能暴露來源 GIF 與瀏覽器畫布產出之間任何細微透明性或色彩管理不一致的地方。

接下來,工作流程會依你實際需要而分岔:

  • 對於要放入簡報、文件或模型的靜止影像,PNG 通常就是最終版本。如果畫布大於版面所需,你可以依目的端調整其大小。
  • 若要製作一個比原始更小的全新動畫 GIF,可將選定的 PNG 與新的逐影格延遲重新放回 GIF Maker。
  • 對於縮圖或社群媒體素材,Image Resizer 能將靜止畫面縮減至精確的像素尺寸,而不需重新編碼來源 GIF。
  • 若要得到較小的靜態照片輸出,PNG to JPG 能以受控的品質等級轉換選定的影格。

這些 PNG 只在你更換輸入、離開頁面或關閉分頁之前可用,因此請在同一個工作階段中下載你需要的靜止畫面。頁面依賴瀏覽器畫布來實際產生 PNG,並且僅在你按下擷取按鈕之後才進行本機 GIF 解碼,這就是為何對你的檔案不會發出任何網路請求。這種純本機的行為,正是讓它能安全指向一個你通常不會想上傳到任何地方的龐大 GIF 的原因。

若想更深入了解,請參閱 Convert Add Text to Image with a Solid Border Frame。

若想更深入了解,請參閱 Extract Images From Excel on iPhone Without an App。