如果 GIF 太大而無法傳送,可以將其分割成選定 moments 的 PNG 靜態影像,而 GIF Splitter 可在本地擷取高達 20 MB 的動畫 GIF。

這是一種變更格式的解決方案:輸入為動畫 GIF,輸出則是個別的完整畫布 PNG 影像。當收件者需要一個或多個靜態 moment 時,這個方法很適用。如果收件者需要的是動態本身,則應調整 GIF 的大小或最佳化它。

不要以為擷取每一個影格就會自動產生較小的訊息。總大小取決於你下載的 PNG,因此只選擇你打算傳送的影格,並檢查目的地的目前檔案大小限制。

gif too large to send
GIF 太大而無法傳送:動畫或靜態影格?

在動畫修正方案與靜態影像之間選擇

應先依收件者需要的結果決定做法,而不是任意變更檔案。傳送失敗可能是檔案大小門檻、不支援的格式,或傳遞管道的限制所致,因此保留預期體驗與減少位元組數同等重要。

  • 如果收件者必須觀看動畫,請調整原始 GIF 的大小或將其最佳化。
  • 如果一張圖片就足以傳達,請擷取相關的可見影格並以 PNG 傳送。
  • 如果需要一連串畫面但不需要動態效果,請依序下載幾張附編號的 PNG。
收件者需要的內容 實用做法 結果 重要限制
動態 GIF 調整動態來源的大小或將其最佳化 動畫 GIF 轉換後應檢查顏色、尺寸或播放品質。
單一靜態 moment 分割 GIF 並下載一個影格 完整畫布 PNG PNG 不含動畫。
數個依序排列的 moment 分割 GIF 並下載所選影格 附編號的 PNG 檔案 分割工具提供個別下載,而非 ZIP 壓縮檔。

這種區分可避免一個常見錯誤:收件者明確要求動畫檔,卻傳送了一資料夾的靜態影像。當單一擷取的靜態影像就能完整傳達重點時,它也能避免不必要的品質降低。

為何每個 PNG 都是完整的可見影格

動畫 GIF 並不一定會為每個 moment 儲存完整圖片。編碼器通常只會儲存一個與前一張圖片不同的小矩形。其他區塊可能包含透明像素、要求顯示後清除目前矩形,或指示解碼器還原較早的畫布。

直接複製這些原始矩形會產生不完整或誤導性的影像。GIF Splitter 會將每個影像區塊套用至邏輯畫布,在正確時點處理前一個處置指令,並匯出產生的完整可見影格。因此,會動的貼圖或游標會變成一般 PNG,即使沒有較早的影格也能開啟。

  • 影格編號依解碼後的 GIF 影像順序排列,並從 1 開始。
  • 每個 PNG 都保留 GIF 的完整邏輯畫布尺寸。
  • 頁面會以毫秒顯示解碼後的延遲時間,作為排序資訊。
  • 在瀏覽器畫布保留透明度的位置,透明度也會維持透明。

顯示的延遲時間無法保證每個播放器或平台都有相同的播放效果,因為 PNG 本身不含動畫時間資訊。分割工具也不會裁切至變更區域、調整影像大小、將影格組合成聯絡表、繪製標籤或背景,亦不會重新編碼成新的動畫。

擷取所需的 PNG 影格

  1. 選擇動畫 GIF。 開啟 GIF Splitter 並選擇不超過 20 MB 的動畫 GIF。即使檔案符合此限制,仍可能超過收件者較低的傳送門檻,但超過分割工具限制的檔案無法由此工具處理。
  2. 開始擷取。 選擇 Extract PNG frames,並等待本地的合成作業完成。來源會在目前的瀏覽器分頁中解碼;不需要上傳至伺服器、建立帳戶或使用遠端轉換佇列。
  3. 檢視附編號的預覽。 頁面會列出每個可見的動畫影格,並附上預覽、影格編號、畫布大小、解碼後的延遲時間及個別下載連結。開啟相關預覽,並只下載你打算傳送的完整 PNG 影格。
  4. 檢查具代表性的輸出結果。 開啟下載後的第一張、中間一張及最後一張 PNG,再與原始動畫比較。應特別留意只有部分畫布發生變化的轉換效果。

輸出檔名會沿用來源檔名,並加上補零的影格編號,例如 animation-frame-01.png,有助於維持檔案的動畫順序。分割工具刻意提供個別 PNG 下載,而非建立 ZIP,因此只有收件者需要單一壓縮檔時,才將下載的檔案另行封裝。

在結果消失前進行檢查

擷取的檔案只會存在到你替換輸入檔、離開頁面或關閉分頁為止。離開輸出清單前,請先下載所需的影格。在檢查完成前,將來源 GIF 與所選 PNG 放在一起,也會使比較更容易。

大多數 GIF 都能正常合成,但微妙透明度、色彩管理差異或損壞的擴充資料,在目的應用程式中可能會呈現不同結果。分割工具無法復原瀏覽器解碼器無法讀取的影格、偵測重複的視覺影像、推斷哪個影格最實用、保留 GIF 註解或應用程式擴充功能,亦無法重建影片時間軸。

如果瀏覽器無法解碼提供的 GIF 或配置必要的畫布,操作就會停止,而不會產生損壞或標示錯誤的檔案。被拒絕的輸入會收到清楚的訊息,且頁面不會保留部分提交的影格清單。

遵守分割工具的處理限制

20 MB 的來源檔案上限只是工作流程的一部分。GIF 解碼可能將動畫檔展開成遠多於其儲存位元組大小的像素資料,因此畫布尺寸、每個影格的像素數、影格數及總處理工作量也會受到檢查。

檢查項目 可接受的限制或行為 實際影響
輸入類型 動畫 GIF 所述擷取工作流程適用於動畫 GIF 輸入,而非靜態影像。
來源檔案大小 最高 20 MB 較大的來源超出工具可接受的範圍。
畫布寬度與高度 每邊最多 4,096 像素 瀏覽器必須配置完整的邏輯畫布以進行合成。
單一影格中的像素數 最多三百萬像素 這是每個影格的上限,不代表可輸出不受限制的多影格結果。
影像影格 最多 50 較長的動畫可能超過可接受的影格數。
預先檢查 建立 PNG 前,會檢查補丁處理總量與輸出像素總數 處理量大的輸入可能會在產生任何下載清單前遭到拒絕。

這些安全措施可避免看似很小的 GIF 導致瀏覽器分頁配置不合理的畫布。它們也代表著,被拒絕的動畫應先依來源大小及其實際影格尺寸進行檢查,再尝試重新處理。

靜態影像無法勝任時,保留動畫

當收件者需要完整動作時,擷取出的 PNG 並不能取代動畫 GIF。這種情況下,請先檢查擷取的影格,再使用 GIF Resizer 或 GIF Optimizer 建立新的動畫 GIF。

請在目的環境中檢視轉換後的動畫,尤其是轉換效果與透明區域附近。使用前,請將結果檔案的大小與傳送限制進行比對。如果收件者可接受靜態影像,但單一擷取的 PNG 仍然太大,請先檢查擷取的影格,再使用相關的大小調整或最佳化工具。若要取得較小的輸出影像,請選擇 Image Resizer 或 Image Compressor。

使用簡單的決策清單

  1. 在動態與靜態影像之間做決定。 需要動畫表示應調整 GIF 的大小或將其最佳化;只需要單一 moment 則表示擷取一個 PNG。
  2. 確認分割工具能接受來源檔案。 檢查 20 MB 的檔案大小上限、畫布尺寸、每個影格的像素數及影格數。
  3. 在本地擷取並檢查。 等待合成作業完成、檢視附編號的預覽,並在傳送前開啟具代表性的下載 PNG。
  4. 只傳送需要的內容。 下載相關影格,而非所有輸出;如果收件者希望將 PNG grouped,請將它們另行封裝。
  5. 確認目的地能接受結果。 PNG 適用於靜態影像;當實際需求是會動的檔案時,請使用最佳化的動畫 GIF。

核心原則很簡單:當訊息可 以靜態影像傳送時,分割就能解決問題。當必須傳送的是動畫本身時,減少或重新編碼該 GIF 才是正確的工作流程。

相關閱讀:為網站調整 GIF 大小:尺寸與品質檢查。