調整 GIF 的大小,是指在保留幀序、播放時間與比例的前提下,改變動畫影像中每個可見幀的像素尺寸。GIF 並不是單張圖片,而是一段由多個幀組成的短序列,每個幀都有自己的延遲時間與銷毀規則,並疊加在一塊邏輯畫布上。當你把這塊畫布調寬或調窄時,在動畫重新組合之前,每個幀都必須以新的尺寸重新繪製。初學者常會用調整 JPG 的方式來縮放 GIF,結果不是檔案完全沒變,就是產生一支背景缺漏、像素錯位的損壞動畫。較安全的做法是使用以瀏覽器為基礎的工具,在本機解碼動畫、依據 GIF 本身的規則合成每個圖塊、縮放完整的可見畫布,然後匯出一支能立即下載的全新動畫 GIF。這個做法能讓作業保持私密,並忠實保留檔案原本的播放時間,讓你在發布到任何地方之前,就能以預期的顯示尺寸預覽成果。

resize gif for beginners
為初學者調整 GIF 大小:白話文逐步指南

「調整 GIF 大小」真正的意義

「resize」涵蓋的工作會依據你手上的檔案而截然不同。對 JPG 或 PNG 來說,resize 通常是把單張圖片以新的像素尺寸重新寫入——一塊畫布、一張圖片、一個輸出結果。對動畫 GIF 來說,檔案內含一串依序播放的幀,通常帶有透明度,而且有些圖塊只更新畫布的一部分,而不是整塊取代。因此,調整 GIF 的大小,代表的是把整段動畫以新的尺寸重新繪製,讓循環播放時每個幀仍能與其他幀對齊。

如果你只在意畫面,那麼快速的開啟–另存新檔看起來沒問題。人們會遇到困難,是因為時間與透明度的緣故。GIF 會為每個幀儲存延遲時間,所以一個只持續百分之一秒的幀,可能緊接著一個持續整整一秒的幀。一旦這些時間資訊被丟掉或打亂,動畫看起來就會抖動、變慢,甚至卡住。透明度之所以重要,是因為 GIF 的像素要不是完全可見,就是完全透明,所以 JPG 中半透明的邊緣,在 GIF 重建後會變成生硬的邊緣。完善的工作流程會保留解碼後的延遲時間,並在產出新檔前為每個幀重建可見的畫布。

為什麼 GIF 不只是「一張帶有數字的圖片」

GIF 的設計目標是維持檔案大小,而這個格式用了一個讓初學者不解的技巧:大多數的幀都不是完整的圖片。一支典型的動畫會儲存一個完整的第一幀,然後再存放一份小小的矩形圖塊清單,只更新有變動的區域。每個圖塊還可以帶有銷毀指令,告訴下一幀該如何處理被該圖塊覆蓋的像素——保留、清除,或是將畫布還原到先前的狀態。當工具單獨縮放每個原始圖塊時,這些圖塊便不再對得上它們原本要更新的畫布,於是背景消失、拖影留下雜點,在本應透出的地方出現透明破洞。

正確的調整大小方式是先依據那些銷毀指令合成所有圖塊,讓每個幀都成為完整的可見畫布。然後再把縮放套用到完整的幀上,而不是套用到圖塊上。如此得到的動畫,在新尺寸下會呈現出它原本應有的樣貌。了解單獨縮放圖塊會發生什麼事,是在你明白「先合成」為何重要之後,值得再深入的下一步。

以瀏覽器為基礎的 GIF 縮放工具為你處理了哪些事

GIF Resizer 是專門為這項工作打造的工具。它會開啟動畫 GIF、讀取檔頭與幀描述區塊、依據銷毀指令合成每個圖塊、依你輸入的寬度縮放完整的可見畫布、建立一個新的調色盤式 GIF,並提供一個下載連結。解碼後的像素、來源檔以及最終輸出的檔案,全都保留在你的裝置上。沒有上傳步驟、不需要帳號,分頁關閉後伺服器上也不會留下任何資料。

這個工具刻意只開放一項幾何控制項:輸出寬度。這樣的設計讓長寬比保持明確,對初學者來說很重要,因為既沒有第二個欄位要填,也不必擔心填錯。對應的高度會依據來源畫布計算,並四捨五入到整數像素。這個工具不做裁切、不加邊框、不單獨拉伸任一軸、不旋轉動畫、不更改幀序、不加上字幕,也不選擇新的長寬比。任何會改變動畫可見內容(而非尺寸)的動作,都留給其他工具——裁切交給圖片裁切工具、重新排列幀序交給 GIF 編輯器、加上文字交給字幕工具。

三個步驟完成你的第一張 GIF 縮放

  1. 開啟 GIF Resizer 頁面,選擇一支不超過 20 MB 的動畫 GIF。頁面會顯示偵測到的來源畫布——以像素表示的原始寬度與高度——這就是你要用來做比例檢查的數字。
  2. 以整數像素輸入目標寬度。對應的高度會自動依來源畫布的比例計算。舉例來說,800 × 600 的來源畫布輸入 400,會輸出 400 × 300 (800 ÷ 400 = 2,再 600 ÷ 2 = 300)。
  3. 選擇 Resize GIF。處理完成後,下載新的動畫,在瀏覽器或目標應用程式中以預期的顯示尺寸開啟,檢查播放時間、邊緣品質與文字可讀性。

這就是完整的流程。不需要註冊帳號、不必挑選第二種檔案格式,也沒有伺服器往返。頁面會在匯出後回報實際的輸出尺寸、幀數與最終檔案大小,讓你在存檔之前就能確認結果是否符合你的需求。

下載後要檢查哪些項目

重建後動畫的第一次循環,就是最容易看出問題的地方。以預期的顯示尺寸觀看一次——如果它最終會顯示在全螢幕,就用全螢幕觀看;如果它會出現在訊息中,就用那個精確的對話寬度觀看。注意播放時間,因為重建後的 GIF 雖然會保留解碼後的延遲時間,但當畫布尺寸改變時,讀起來可能會有些微差異。檢查動畫中的任何小字,因為縮小後的文字可能會失去可讀性,而新的調色盤轉換也可能改變它的顏色。

對照你打算使用的背景,檢視透明邊緣。GIF 的透明度是單一位元,所以像素要不是完全可見,就是完全不可見——沒有柔邊。經過第二次調色盤處理後,來自 JPG 來源的抗鋸齒邊緣,可能會比你想像的更為生硬,這是 GIF 格式本身的特性,而非縮放工具的錯誤。如果你看到雜散像素、背景破洞,或某個幀閃現到錯誤的顏色,代表來源檔可能含有瀏覽器無法完整重建的圖塊;在這種情況下,頁面會顯示錯誤訊息,並且不會留下失效的下載檔案。

縮小尺寸通常會減少像素數,但並不保證檔案會變小。動畫內容、調色盤選擇與 GIF 壓縮,都會影響最終的位元組數;頁面會回報實際大小,而不是承諾某個百分比的縮減。如果新檔案比原始檔大,下一步應該是用專門處理調色盤的 GIF 最佳化工具,再進行一次調色盤處理,而不是再縮放一次。

需要記住的上限與數字

瀏覽器會以明確的範圍保護自己,這些範圍同時也保護你不會遇到半途下載或頁面卡住。選擇的檔案大小上限為 20 MB。其邏輯畫布任一邊不得超過 4,096 像素,單一幀的像素數不得超過三百萬個像素。動畫最多可包含 50 個影像幀,另外還有壓縮圖塊與整體輸出處理的限制。這些數字之所以重要,是因為一個壓縮後很小的 GIF,解碼後可能展開成大量的畫布像素。超出上限的檔案會在配置大型輸出畫布之前就被拒絕,這也是為什麼提早出現的「這個檔案太大」訊息,是設計上的功能而非錯誤。

限制數值為什麼對初學者很重要
來源檔案大小上限 20 MB較大的檔案會在任何動作處理之前直接被拒絕。
畫布寬度或高度上限 4,096 px一般網頁上的 GIF 都遠低於此;高解析度的匯出檔則不一定。
每幀解碼後的像素數上限 3,000,000解碼後的處理量可能會超過壓縮後的檔案大小。
動畫中的影像幀數上限 50大多數的短循環都適用;較長的合輯則不適用。
輸出寬度控制項僅限寬度,整數像素高度會依來源比例計算。

遵守這些範圍,正是讓結果可預期的原因。如果你的來源檔在範圍內,頁面就能在一次處理中完成合成、縮放與匯出,並提供一個可供檢視的下載連結。

將整個工作流程組合起來

這項工作最單純的版本,就是三個動作加上一個檢視。從原始 GIF 的複本開始,而不是用唯一的那一份,因為匯出是全新的編碼,並不是對原始位元串逐位元組的縮放。開啟 GIF Resizer,選擇檔案,確認頁面顯示的來源畫布,輸入目的端需要的寬度,然後下載。在將會實際使用它的應用程式中開啟結果,並檢查第一次循環的播放時間、文字可讀性、邊緣品質與透明度。這一個檢視步驟,正是「猜測」與「確認結果」之間的差別,也是把初學者變成有信心使用者的關鍵。

接下來該怎麼做,則視檔案需求而定。如果結果在位元組上仍然太大,將它送入調色盤縮減工具。如果需要不同的長寬比,先裁切再縮放。如果動畫需要字幕,使用專門的字幕工具。縮放只是整套工具中的一項工作,把它當成一個獨立、聚焦的步驟,正是讓其餘工作流程保持乾淨的關鍵。