abox.tools

語言: 繁體中文

怎麼逐幀編輯 GIF

這裡沒有 GIF 編輯器,也不需要:一個把動畫拆成幀的拆分器,加一個用幀組裝動畫的產生器,就是一個中間夾著資料夾的編輯器——而那個資料夾正是你親自動手的部分,用的就是你平時處理圖片的那些東西。

以 Markdown 檢視

簡短的答案

  1. 拆開。開啟 GIF 拆分器,把 GIF 拖進去。每一幀變成一張獨立的 PNG — 按它在螢幕上呈現的樣子,透明度也保留 — ZIP 裡還附一份節奏清單:每幀的停留時間,為重組記下來的。
  2. 編輯資料夾。該走的幀刪掉,該改的幀在任何圖片編輯器裡修,想重排就改檔名。一個裝滿 PNG 的資料夾,是萬物都認得的格式。
  3. 裝回去。把資料夾拖進 GIF 產生器,設好每幀的停留時間——或者照著清單來——選好調色盤,匯出。

三步全在你的瀏覽器裡跑。任何時刻都沒有任何東西被上傳,而這在這裡比平時更要緊:人們要修的 GIF,太多是螢幕錄影,裡面半露著什麼敏感的東西。

動手之前,拆分器能告訴你什麼

拆分器給每一幀標出停留時間、位置、尺寸和處置規則——動手之前值得先看一眼這塊面板,因為它解釋了大多數 GIF 的兩個意外。

其一:幀並不都是完整的畫面。許多 GIF 只存變化了的畫素,打補丁一樣貼在前一幀上;拆分器讓你選每一幀是按呈現的樣子還是按儲存的樣子取出,而編輯時你幾乎總要呈現的樣子,好讓每張 PNG 都能自立。其二:停留時間是逐幀的,不是一個數。落在包袱上的那個停頓,是真實一幀上的真實停留,而把它平安帶過往返一趟的,正是那份節奏清單。

要是隻做常見的刪減,資料夾這一步甚至可以省:每兩幀留一幀、每五幀留一幀,或者逐幀勾選去留,這些都在拆分器裡——而把幀砍半,是一個 GIF 能得到的最見效的減肥方案。

拆分工具顯示一段動畫的十二個編號幀,每一幀旁邊標著停留時間。
每一幀都有編號,也都有自己的延遲。這一半的作用,是在你動手編輯之前先告訴你要編輯的是什麼。

重組的代價,說實話

一個 GIF 最多裝 256 種顏色,在組裝時選定。重組會把幀重新量化一遍——一個共享調色盤,或者逐幀選最優顏色——在照片類素材上,這第二次量化可能看得出來。在螢幕錄影和線條畫上——也就是通常的貨物——看不出來:它們本來就沒用滿過 256 色。

產生器的其餘幾根槓桿,和 GIF 預算指南裡的相同:更少的顏色、漸變用 Floyd-Steinberg 抖動,還有迴圈行為——永遠、一次,或者指定次數。

想看看手術成沒成功——以及位元組到底住在哪裡——把成品拖進 GIF 分析器:它把幀對位元組畫成圖,最重的那幀往往是一次本可以裁掉的整幅重繪。

這趟路產生器自己就會提議:匯出之後,下載按鈕下方的一行會把剛做好的 GIF 直接帶到分析器,到那邊已經裝好。

GIF 製作工具裡按順序排著六幀,每幀有一個延遲輸入框,上面還有一行可以一次設定所有延遲。
然後是回程。延遲得靠手一個個填回去,這趟來回裡值得事先知道的正是這一點。

如果你每週都做這件事

拆開、資料夾、重組:這幾步分住在不同頁面上,因為每個頁面只做一件事,每一個都能獨自證明沒有任何東西離開你的電腦。但這一切都是開源的:MIT 許可證,每個工具一個資料夾,零依賴的 ES 模組,README 講清解碼器、處置規則和量化器。

如果 GIF 手術是件反覆找上門的雜活,就把程式碼代理指向程式碼儲存庫,讓它把拆分器的幀表和產生器的編碼器折進一個頁面,刪一幀只要一次點選。這些模組就是寫來被讀的,把它們帶走,正是許可證存在的意義。