若要有把握地縮小動畫 GIF,請在瀏覽器的工具中將其調色盤縮減為較少的色彩數,這個工具須同時顯示實際的前後位元組大小,再依據這些真實數字判斷結果,而不是依賴空泛的壓縮承諾。GIF 的檔案大小主要由每個影格參照的相異色彩數量,以及調色盤表和索引串流的壓縮效率決定;將調色盤上限從 256 降到 128 或 64,是不改變畫布尺寸或動畫播放時間的情況下,你能做的最大幅度的單一調整。必須誠實說明的是,調色盤縮減並不保證能讓檔案變小。新的全影格編碼也可能比原始檔案還大,因為重建後的調色盤壓縮效率不如原本的調色盤,因此正確做法是進行本機重新編碼,讀取實際輸出的位元組大小,僅在真實數字 — 以及完整的循環播放 — 都顯示可接受時,才採用結果。這種以測量為依據的工作方式,正是 瀏覽器版 GIF Optimizer 的設計目的:它在本地解碼動畫、在完整邏輯畫布上重建每個可見影格、以你選定的調色盤重新編碼,並在下載前顯示真實的輸出大小 — 即使輸出比原始檔案還大也是如此。

為什麼調色盤縮減是最直接的槓桿
GIF 是基於調色盤的格式:每個影格中的每個像素都是小型色彩表的索引,而該色彩表本身儲存在檔案中。因此,影格大小取決於它參照的相異色彩數量、調色盤表的大小,以及最終索引串流的壓縮效率。將調色盤上限從 256 降到 128,會移除大約一半的色彩表項目,並且通常能簡化像素資料 — 這是在不調整畫布大小或刪減影格的情況下,能獲得的最大位元組節省。
許多 GIF 也使用部分影格更新:檔案不會儲存每個影格的完整圖片,而是儲存覆蓋先前內容的小矩形區域。這種技巧能在來源端節省位元組,但對天真的重新編碼器來說會產生實際問題。把每個區塊當作獨立處理的工具,會在後續影格畫上錯誤的背景,透明或銷毀行為也可能被破壞。可靠的最佳化工具會先把每個局部修補區塊合成到完整的邏輯畫布上,再以選定的調色盤重新編碼這些完整畫布。其必然的代價是,原本已透過局部影格更新高度最佳化的來源,在全影格重新編碼後可能會變大 — 這正是為什麼讀取真實的大小差異是唯一誠實的訊號。
「最佳化」GIF 實際上改變了什麼
「最佳化」這個詞需要嚴謹的定義,因為 GIF 本身已是壓縮式的調色盤格式,沒有一種萬用的轉換能在沒有取捨的情況下讓所有 GIF 都變小。一個有用的 GIF 工具應改變一個明確、可檢視的變數,並回報該改變的真實後果。調色盤上限就是這樣的變數:透過限制每個輸出影格可用的最大色彩數,你可以縮小色彩表、通常也能簡化像素串流,有時則可能產生色階斷層、抖動改變,或反直覺地 — 當新調色盤的版面配置壓縮效果比原本更差時,檔案反而變大。
誠實的承諾是顯示實際的前後大小,並明確允許正向的百分比變化,而不是把變大的輸出標示為節省。這正是 GIF Optimizer 背後的承諾:它在頁面中合成每個影格、以你選擇的調色盤重新編碼,並顯示真實的輸出大小 — 即使輸出比來源還大也是如此。
執行瀏覽器版 GIF Optimizer 並讀取數字
整個工作流程都在同一個瀏覽器分頁內完成。工具會讀取你的檔案、解碼動畫、在完整畫布上重建每個可見影格、以你選定的調色盤重新編碼,並在你下載前回報實際的位元組大小。若顯示的數字與完整循環播放都令人滿意,就完成了。若不滿意,同一頁面讓你無需重新上傳,就能對同一來源嘗試更小的調色盤。
- 從電腦中選擇大小不超過 20 MB 的動畫 GIF,畫布任一邊不得超過 4,096 像素、每影格不超過三百萬像素,且影格數不得超過 50 個。
- 依據你願意用多少色彩細節換取較小的檔案,選擇調色盤大小 — 256、128 或 64 色。
- 選擇 Optimize GIF,等待瀏覽器在本地重新編碼每個可見影格。
- 並排讀取所顯示的原始大小與輸出大小,並記下真實的位元組差異,即使輸出變大也是如此。
- 下載產生的 GIF,用你慣用的檢視器開啟,並播放完整的循環以確認時間與視覺效果。
- 若輸出過大或品質受損,請回到步驟 2 選擇更小的調色盤,或另外使用專門的調整大小工具來縮放畫布。
所有操作都在當下的瀏覽器分頁中進行。過程中沒有上傳、帳號、伺服器排隊或雲端儲存。
選擇 256、128 或 64 色
這三種調色盤選項是上限而非承諾 — 每一個都限制了輸出影格可參照的最大相異色彩數,最佳化器會在該上限內建立最忠實的調色盤。正確的選擇取決於你的動畫實際使用多少色彩細節,以及你希望實驗的激進程度。
| 調色盤 | 適用情境 | 預期結果 |
|---|---|---|
| 256 色 | 保留色彩細節比積極縮減更重要的來源 | 視覺變化最小;大小縮減有限;適合漸層、細小文字或照片影格的最安全選擇 |
| 128 色 | 插圖、UI 動畫、具中等色彩多樣性的螢幕錄影 | 通常是在不出現明顯色階斷層的情況下,位元組降幅最大的一次調整;多數來源建議從這裡開始 |
| 64 色 | 平面繪圖、簡單圖示,或可接受明顯簡化的激進實驗 | 調色盤驅動的最大降幅;漸層、照片和細小文字很可能出現色階斷層;適合做壓力測試 |
這些是輸出控制項,並非對來源原本使用多少色彩的聲明。以 64 色處理以照片為主的 GIF 會出現明顯的色階斷層;以 128 色處理平面色彩的插圖則通常看起來沒有變化,且可能大幅縮減。下載後,請以實際的目標顯示尺寸檢查漸層、照片、細小文字與透明邊緣 — 即使位元組大小改善了,低色彩數仍可能讓動畫照片看起來明顯不同。
讀取真實的大小差異
頁面會回報兩個數字 — 原始位元組大小與輸出位元組大小 — 而且絕不會把變大的輸出重新標示為節省。請把該輸出視為事實:若最佳化後的檔案較小且循環播放看起來正確,就下載它。若最佳化後的檔案更大,不要假裝調色盤調整有幫助;可能是來源已經高度微調、重建後的調色盤不適合,或全影格重新編碼消耗的位元組就是比被取代的局部更新還多。
具體的比較有助於建立合理預期。一個 3.2 MB 的來源若要達到 1 MB 的目標,需要大約 69% 的縮減(3.2 − 1.0 除以 3.2)。這對單一調色盤調整加上複雜動畫而言是很大的要求,這也讓你一開始就知道,單靠調色盤縮減可能不夠。128 色重新編碼可能落在接近 2 MB;64 色重新編碼可能更接近 1.3 MB;若不另外縮放畫布,兩者都可能達不到 1 MB。任何特定來源的確切位元組數必須來自工具本身,而非公式 — 請使用所顯示的數字。
當調色盤縮減不夠時,依序的後續步驟為:降到下一個調色盤層級、使用專門的調整大小工具縮放畫布尺寸、在另一個工具中修剪或去除重複影格,或在接收端更改目標格式。更全面的、重視隱私的 GIF 縮減工作流程已整理於 如何在不上傳的情況下縮減 GIF 檔案大小。
動畫行為、透明性,以及匯出所保留的內容
匯出結果是一段全新的 GIF 串流。它保留了解碼後的可見影格順序與每影格的顯示延遲,但不會保留來源原本的調色盤表、註解區塊、應用程式擴充、位元組層級的最佳化方式或有限的循環次數 — 結果設定為持續重複播放。GIF 支援一位元透明性,透明的輸出像素會在該模型內編碼;該工具不會保留超越這單一位元模型的更複雜透明性行為。
這個最佳化器並非通用的影片工具。它不會把 GIF 轉成影片、不保留音訊、不產生 WebP 或 MP4、不修剪影格、不改變速度,也不去除重複影格。若你需要上述任何操作,請使用為該目的打造的專門工具,並把這個 GIF 最佳化器定位為較大工作流程中的調色盤與影格合成步驟。
限制、預先檢查與瀏覽器隱私
最佳化器在配置重新編碼工作之前會強制執行限制,這就是為什麼它會以明確的錯誤訊息拒絕過大的輸入,而不是產生不完整或過期的檔案。選定的 GIF 最高可達 20 MB,畫布任一邊不得超過 4,096 像素,每影格不超過三百萬像素。它接受不超過 50 個影格,並限制累計的修補區與輸出像素預算。壓縮過的動畫在記憶體中可能膨脹為遠大於其檔案大小的容量,因此超出這些界限的輸入會直接被拒絕。若碰到限制,務實的做法是分割動畫,或在重新執行最佳化器之前先調整大小。
頁面使用標準的瀏覽器畫布與本地 Blob 下載 API 來組裝匯出檔,無需任何網路往返。不同引擎的瀏覽器渲染與色彩管理可能略有差異,受損或不支援的 GIF 可能在輸出前就失敗;在這種情況下,工具會以錯誤訊息停止,且不會保留任何冒充為新結果的舊輸出。社群網路、通訊應用程式與 CMS 平台在上傳後可能再次重新處理 GIF,因此請測試最終發佈的素材,而非只信任磁碟上的檔案 — 在本機看起來正確的檔案,仍可能被目的端平台轉換。
延伸閱讀:在瀏覽器中縮放多個 GIF,無需上傳。