不靠 Photoshop 的逐格時間軸,也能為 GIF 加上文字,只要用一個專注於此的瀏覽器工具,以三個簡短、本機完成的步驟,在每個可見畫格上繪製一段外框字幕——長度最多 80 個字元。Photoshop 為加上字幕的 GIF 走的是經典流程:開啟時間軸面板、展開每個畫格、輸入或貼上字幕、眼睜睜看著處置方式把動畫的一部分搞得亂七八糟,再透過「儲存為網頁用格式」重新匯出。最終目標與瀏覽器流程相同:在每個畫格上繪製同一段簡短字幕,讓文字在整個循環播放期間都保持可見。瀏覽器流程把時間軸的繁瑣工作換成單一表單,你可以挑選一個本機 GIF(最大 20 MB)、輸入字幕、選擇頂端、中央或底端位置,然後下載加上字幕的動畫。由於 GIF 解碼器、全畫格合成器、canvas 文字繪製器以及最終編碼器都在目前這個分頁中執行,因此除非你主動選擇儲存,否則來源檔、解碼後的每個畫格,以及輸出的 Blob 都會留在你的裝置上。

how to add text to gif in photoshop
在 Photoshop 中為 GIF 加上文字:瀏覽器替代方案

為什麼 Photoshop 的 GIF 工作流程對一段字幕來說太沉重

Photoshop 是為分層的靜態影像設計的,所以動畫 GIF 最終會以堆疊在時間軸上的逐格圖層呈現。若要為整段循環加上字幕,意味著要逐一開啟每個圖層,輸入或貼上訊息,還得祈禱周圍的圖層仍然對齊正確。對於一段較長的動畫來說,這會變成數十甚至數百次的小幅編輯,而任何一個被你略過的圖層,都會讓字幕看起來在畫面上閃爍不定。

每次圖層編輯也必須重新設定時間,因為動畫 GIF 帶有逐格的延遲指令,控制每個畫格在螢幕上停留的時間。在第 12 格加上的字幕並不會自動在整個循環中保持可見,除非周圍的畫格繼承了相同繪製像素,或接受相同的文字編輯。除了時間之外,每個 GIF 檔案還帶有一個調色盤表——一份檔案可以使用、最多 256 種顏色的清單——以及一組處置方式指令,告訴解碼器要保留前一個 canvas、清除一個矩形區域,或還原到較舊的影像。手工在這些特殊規格之間編輯字幕既緩慢,而處置方式只要出一次錯,就可能留下永久的殘影,讓前一格像素洩漏到下一格。

全畫格字幕需要 GIF 讀取器提供什麼

若要繪製一段乾淨、能在整段動畫中保持在原位的字幕,加字幕這個步驟必須知道每個檢視者實際看到的畫面,而不是檔案中每個影像區塊剛好裝了什麼。動畫 GIF 檔案比一組各自獨立的圖片來得複雜。它可能包含一張完整影像,後面接著一些小型變動矩形,解碼器依據處置規則把它們組合成一個共享 canvas。直接把文字畫在這些原始矩形上可能會抹掉背景或留下殘影,因為下一格預期前一個 canvas 會被保留、清除或還原。

理論上的修正是直接了當的:重建每個可見畫格應該顯示的完整邏輯 canvas、在那個合成後的 canvas 上繪製字幕、然後再把結果交給新的 GIF 編碼器。接著編碼器把每個可見畫格量化到一個全新的調色盤,並寫出從頭到尾都能連續循環播放的動畫,任何現代的 標籤或即時通訊應用程式都能順暢播放。那個基於處置方式的合成步驟,正是 canvas 渲染內容(MDN 的 fillText 與 strokeText 參考頁面所描述、在瀏覽器內部用來繪製外框文字的那個合成步驟)所仰賴的同一套標準。

如何不開 Photoshop 就做到 Photoshop 風格的 GIF 文字

以下是不開 Photoshop、用一個本機執行的瀏覽器工具達成 Photoshop 風格結果的配方。每個步驟都在目前這個分頁中完成,最後輸出的動畫就是一個可下載的 GIF 檔案。

  1. 在瀏覽器中開啟 為 GIF 加上文字 頁面,使用檔案選擇器從你的裝置挑選一個本機動畫 GIF(最大 20 MB)。
  2. 在字幕欄位中輸入你的簡短字幕,長度請控制在 80 個字元以內,讓它在經過尺寸計算後仍清楚可讀。
  3. 選擇位置——頂端、中央或底端——讓字幕擺在不會遮住重要主體(像是臉部、標誌或關鍵動作)的位置。
  4. 選取「為 GIF 加上文字」動作以啟動本機管線:解碼每個影像區塊、套用前一格的處置行為以合成完整的可見 canvas、在選定位置繪製帶深色外框的白色字幕、再把加上字幕的畫格量化到新的 GIF 調色盤。
  5. 在頁面中觀看一次完整循環以預覽結果,當字幕的位置、粗細與時間都看起來滿意時,再下載新的 GIF。

如果你在下載前變更了字幕、位置或來源檔,之前的管線執行會被取消,舊的結果也會被移除,這樣就不會把過期的下載檔誤認為新設定的結果。

瀏覽器工具強制執行的硬限制

為了避免本機管線超出瀏覽器的記憶體與時間預算,這個工具對輸入強制實施一組小範圍的硬限制。下表列出這套規則所使用的官方定義界線值。

限制 數值
所選 GIF 檔案大小 20 MB
邏輯 canvas 寬度 4,096 px
邏輯 canvas 高度 4,096 px
單一畫格像素數 3,000,000
每個檔案的影像區塊數 50
字幕長度 80 個字元
字幕位置選項 頂端、中央、底端
輸出調色盤顏色數 最多 256(GIF 格式上限)

如果所提供的 GIF 無法通過任何一項檢查——例如簽章無效、畫格無法讀取、canvas 超大,或動畫超出預算——管線會以明確的錯誤訊息停止,並且不會留下任何先前的輸出可供下載。更換檔案或縮短字幕,就能在新的輸入上重新開始一次乾淨的執行。

新 GIF 中保留與捨棄的內容

匯出的檔案是由合成後的可見畫格全新編碼而成的 GIF,而不是對原檔進行位元層級的修補,因此有幾項特性是被刻意保留,也有幾項是被刻意捨棄的。解碼後的可見畫格順序以及每格的延遲時間都會保留,因此動畫的時間節奏會與來源一致。原本的調色盤表、註解區塊、應用程式擴充區塊以及有限循環設定則不會保留,因為這個檔案是由全畫格編碼後的像素重新建立的。

原本以極小的漸進式更新矩形最佳化的 GIF,在經過這種全畫格重新編碼後可能會變大,這正是頁面會回報實際輸出大小,而非承諾產生更小檔案的原因。合併後的修補量與輸出像素預算也會在管線建立大型 canvas 工作之前就先加以限制,因此單一張過大的畫格絕不會在不知不覺中覆蓋掉整個瀏覽器分頁。

分享加上字幕的 GIF 之前的快速檢查清單

在加上字幕的 GIF 被送進聊天頻道或社群動態消息之前,幾個快速檢查能幫你抓出最常見的字幕問題。請在瀏覽器中至少觀看一次完整循環,確認字幕不會閃爍或留下殘影。檢查所選的位置不會壓在重要主體(像是臉部、標誌或關鍵動作)之上。確認字幕文字在預期的顯示大小下仍清楚可讀,因為來源 GIF 太小時,尺寸計算可能不會留給字幕足夠的 canvas 像素,讓訊息在手機螢幕上保持銳利。

如果可能的話,請在目標應用程式中檢視最後的檔案,因為瀏覽器的色彩管理、字型渲染以及 GIF 解碼器在各平台之間可能略有差異。若想更深入了解具備處置感知能力的合成方式——包括為什麼未經處理的 GIF 在字幕直接畫在漸進式區塊上時會出現殘影——為什麼加上字幕的 GIF 會出現殘影以及如何修復 一文會更詳細地說明同一套合成修正。

如果你正在權衡各種選項,文字轉 ASCII 藝術產生器:貼到 Discord 中 有詳細的介紹。