簡短的答案
- 拆開。開啟 GIF 拆分器,把 GIF 拖進去。每一幀變成一張獨立的 PNG — 按它在螢幕上呈現的樣子,透明度也保留 — ZIP 裡還附一份節奏清單:每幀的停留時間,為重組記下來的。
- 編輯資料夾。該走的幀刪掉,該改的幀在任何圖片編輯器裡修,想重排就改檔名。一個裝滿 PNG 的資料夾,是萬物都認得的格式。
- 裝回去。把資料夾拖進 GIF 產生器,設好每幀的停留時間——或者照著清單來——選好調色盤,匯出。
三步全在你的瀏覽器裡跑。任何時刻都沒有任何東西被上傳,而這在這裡比平時更要緊:人們要修的 GIF,太多是螢幕錄影,裡面半露著什麼敏感的東西。
動手之前,拆分器能告訴你什麼
拆分器給每一幀標出停留時間、位置、尺寸和處置規則——動手之前值得先看一眼這塊面板,因為它解釋了大多數 GIF 的兩個意外。
其一:幀並不都是完整的畫面。許多 GIF 只存變化了的畫素,打補丁一樣貼在前一幀上;拆分器讓你選每一幀是按呈現的樣子還是按儲存的樣子取出,而編輯時你幾乎總要呈現的樣子,好讓每張 PNG 都能自立。其二:停留時間是逐幀的,不是一個數。落在包袱上的那個停頓,是真實一幀上的真實停留,而把它平安帶過往返一趟的,正是那份節奏清單。
要是隻做常見的刪減,資料夾這一步甚至可以省:每兩幀留一幀、每五幀留一幀,或者逐幀勾選去留,這些都在拆分器裡——而把幀砍半,是一個 GIF 能得到的最見效的減肥方案。
重組的代價,說實話
一個 GIF 最多裝 256 種顏色,在組裝時選定。重組會把幀重新量化一遍——一個共享調色盤,或者逐幀選最優顏色——在照片類素材上,這第二次量化可能看得出來。在螢幕錄影和線條畫上——也就是通常的貨物——看不出來:它們本來就沒用滿過 256 色。
產生器的其餘幾根槓桿,和 GIF 預算指南裡的相同:更少的顏色、漸變用 Floyd-Steinberg 抖動,還有迴圈行為——永遠、一次,或者指定次數。
想看看手術成沒成功——以及位元組到底住在哪裡——把成品拖進 GIF 分析器:它把幀對位元組畫成圖,最重的那幀往往是一次本可以裁掉的整幅重繪。
這趟路產生器自己就會提議:匯出之後,下載按鈕下方的一行會把剛做好的 GIF 直接帶到分析器,到那邊已經裝好。
如果你每週都做這件事
拆開、資料夾、重組:這幾步分住在不同頁面上,因為每個頁面只做一件事,每一個都能獨自證明沒有任何東西離開你的電腦。但這一切都是開源的:MIT 許可證,每個工具一個資料夾,零依賴的 ES 模組,README 講清解碼器、處置規則和量化器。
如果 GIF 手術是件反覆找上門的雜活,就把程式碼代理指向程式碼儲存庫,讓它把拆分器的幀表和產生器的編碼器折進一個頁面,刪一幀只要一次點選。這些模組就是寫來被讀的,把它們帶走,正是許可證存在的意義。