Photoshop 透過將檔案匯入為圖層文件,再使用「檔案 > 轉存 > 圖層轉存為檔案」指令將每個影格圖層匯出為各自的 PNG,藉此將動畫 GIF 分割成獨立的影格;而像 GIF Splitter 這類瀏覽器工具,則能在不安裝影像編輯軟體或將檔案上傳到伺服器的情況下,直接從 GIF 產生相同編號的 PNG 輸出。這兩種路徑的關鍵細節在於:你下載的 PNG 必須顯示該動畫瞬間的完整可見畫布,而不是 GIF 實際儲存在磁碟上的那個小矩形。GIF 編碼器經常只儲存自前一影格以來變動的像素,並仰賴清除指令在繪製下一個修補區塊之前清除或還原先前的像素。原始的修補區塊 PNG 看起來會像一張裁切的、幾乎透明的影像,這會讓任何期望取得完整影格的編輯器感到困惑。Photoshop 與合成的瀏覽器匯出都透過在每個影格重建整個邏輯畫布並儲存該重建結果來解決這個問題,因此最終 PNG 中看到的內容會與動畫播放時該瞬間看到的內容一致。

將 GIF 分割為影格實際上做了什麼
將 GIF 分割為影格,意思就是把單一動畫檔案轉換成一連串可獨立開啟、逐一編輯,或重新餵回動畫工具的靜態影像。每張靜態影像都應該精準顯示播放期間某個特定瞬間觀眾在螢幕上看到的內容。在聊天中閃的貼圖、載入旋轉圖示,或在幾百毫秒後顯示按鈕的教學覆蓋層,都共享相同的內部結構:一個起始畫布,後面接著一連串小型更新,每個更新都說「變更這個矩形,其餘保持不動,然後在下一個更新之前清除或還原」。如果你只擷取這些小矩形,就會得到一個裝滿破碎、半透明小圖塊的資料。
解決方法是在匯出時將每個步驟重播到完整的畫布上。這正是 Photoshop 在將開啟的動畫 GIF 轉換為圖層文件時內部執行的動作,也是專用的分割工具在將每個區塊合成到運作中的畫布後再寫入 PNG 時所做的事。如果沒有這個合成步驟,產生的靜態影像就是誤導性的縮圖,而不是你的觀眾實際看到的影格。
如何在 Photoshop 中將 GIF 分割為影格
Photoshop 中的確切工作流程使用的是標準的開啟與轉存指令,而非隱藏功能,因此在任何合理新近的版本中都能運作。
- 選擇「檔案 > 開啟」並選取動畫 GIF。Photoshop 會讀取 GIF,將其動畫展開為時間軸,並在圖層面板中為每個影格建立一個圖層。
- 開啟「視窗 > 時間軸」以確認影格數量、順序以及每個影格的延遲時間。面板中的每個圖層對應到一個時間軸影格。
- 若希望匯出的 PNG 按照原始動畫的順序排列,可將圖層重新命名為像 frame-01 和 frame-02 這類有序的標籤。
- 選擇「檔案 > 轉存 > 圖層轉存為檔案」。選擇 PNG 作為檔案類型,選取輸出資料夾,然後確認。
- Photoshop 會為資料夾中的每個圖層寫入一個 PNG。命名會遵循你所設定的圖層名稱,且畫布大小會符合原始 GIF 的邏輯畫布,而非任何個別更新矩形的大小。
- 在任何檢視器中開啟其中三個匯出的 PNG,手動翻閱確認以靜態影像播放時動畫看起來正確。
Photoshop 在這裡的優勢在於它保留了所有的分層圖稿,因此你也可以在匯出之前對個別影格進行修飾或重新排列。對於一次性的分割工作,它的弱點在於安裝容量與授權費用。當目標只是取得編號的 PNG 時,瀏覽器版的分割工具能在更短的時間內產生相同的結果。
如何在瀏覽器中使用 GIF Splitter 將 GIF 分割為影格
對於沒有安裝 Photoshop 或不想為了單次分割而載入完整影像編輯器的讀者,GIF Splitter 能在一般的瀏覽器分頁中執行相同的合成動作。整個管線使用瀏覽器的 GIF 解碼器與畫布在本機頁面上執行,因此來源檔案永遠不會離開裝置。
- 開啟 GIF Splitter,使用檔案選擇器從本機磁碟選擇一個不超過 20 MB 的動畫 GIF。
- 選擇「Extract PNG frames」動作,並等待本機合成程序完成。狀態會在影格列表就緒時顯示。
- 檢視編號的預覽、影格編號、畫布大小,以及頁面上每個項目旁顯示的解碼延時間。
- 點選每個預覽旁的個別下載連結,下載所需的完整 PNG 影格。每個檔案會以來源檔名加上補零的影格編號命名,因此檔案管理員會依動畫順序排序。
這裡沒有需要等待的 ZIP 封檔,也沒有需要核准的伺服器上傳。每個顯示的下載連結都指向一個真正的 PNG Blob,這是頁面使用瀏器的 HTMLCanvasElement.toBlob 方法從畫布像素本機建構而成。這些 PNG 保留了完整的邏輯畫布尺寸、在原始影格具有透明度的位置保留透明,並在你替換輸入、離開或關閉分頁之前一直保持可用。
匯出的內容與 GIF 內部儲存的內容之間的差異
在分割動畫時,觀眾看到的動畫影格與 GIF 中儲存的影像區塊之間的區別,是最常見的混淆來源。GIF 儲存的是一個起始畫布加上多個更新項目。每個更新涵蓋自前一影格以來變動的矩形,可能包含透明像素,並可能帶有一個清除指令,告訴解碼器在影格顯示後清除該矩形或還原先前的畫布。一種天真的匯出方式會將這些原始矩形複製到磁碟,結果產生一資料夾幾乎透明的小圖塊,這些圖塊只有在以相同的清除規則依序疊回時才會對齊。
GIF Splitter 與 Photoshop 都透過維持一個運作中的邏輯畫布來正確處理這個問題。每個更新會繪製在當前畫布之上,前一個影格的清除指令會在適當的時機套用,而最終的完整畫布會被匯出為 PNG。每個預覽旁顯示的影格編號遵循自 1 開始的解碼 GIF 影像順序,所列出的延遲則是解碼後的顯示延遲(毫秒),僅供參考。這是情境資訊,並不保證每個檢視器都會以完全相同的速度播放原始動畫。
安全限制及其存在的原因
這個工具刻意設有輸入限制,以防止看起來不大的上傳檔案佔用不合理的大量瀏覽器記憶體。一個短小的 GIF 解壓縮後的畫布像素可能遠多於其位元組大小所暗示的數量,特別是當每個影格都是完整畫布而非小型更新時。頁面會在開始產生 PNG 之前檢查檔案大小、畫布尺寸、每影格像素數以及影格數量。被拒絕的輸入會顯示清楚的訊息,且不會產生部分影格列表。
| 限制 | 最大值 | 存在的原因 |
|---|---|---|
| 來源檔案大小 | 20 MB | 將初始解碼限制在合理範圍內,避免大檔案拖垮瀏覽器分頁 |
| 畫布寬度或高度 | 4,096 pixels | 避免畫布超過常見的瀏器配置上限 |
| 每影格像素數 | 3,000,000 | 防止單一大型影格耗盡可用記憶體 |
| 影格數量 | 50 image frames | 限制總修補工作量與合併後的輸出像素 |
如果 GIF 超過上述任何門檻,頁面會停止作業,而不會產生損壞或標記錯誤的輸出。對於更大或更長的動畫,使用 Photoshop 等桌面編輯器進行分割,或先使用本機工具修剪 GIF,是較安全的做法。
擷取後的常見檢查
下載完 PNG 後,快速的視覺稽核能找出少數解碼器與原始 GIF 意見不一致的情況。在任何影像檢視器中開啟第一個匯出的 PNG、中間的 PNG 以及最後的 PNG。按照原本的影格時序依序播放。特別留意僅變更部分畫布的轉場,例如移動中的游標或部分背景更新。如果某個區域在應該顯示內容時看起來是空白的,GIF 很可能使用了非常細微的透明度或非標準的延伸資料,此時應在其原始播放器中檢查來源檔案。
這些 PNG 保留了完整的輯畫布尺寸與原始的 Alpha 通道,因此可以直接載入 Photoshop、GIMP、Figma 或瀏覽器版的合成工具等編輯器中。接著若你需要較小的輸出影像,或要以這些靜態影像製作全新的動畫,Image Resizer 與 GIF Maker 工具可以接續分割之後的工作,全程不需要上傳工作檔案。
瀏覽器工具在這項任務上勝過 Photoshop 的時機
當目標是在匯出之前同時進行編輯、修飾或重新排列影格時,Photoshop 是正確的選擇。當目標只是取得編號的完整畫布 PNG,而無其他需求時,覽器版的分割工具是正確的選擇。下表總結了針對此特定任務的實務差異。
| 面向 | Photoshop | GIF Splitter |
|---|---|---|
| 需要安裝 | 是,需要完整的 Creative Cloud 或獨立應用程式 | 否,在瀏覽器分頁中執行 |
| 檔案上傳至伺服器 | 否,在本機開啟 | 否,在本機解碼 |
| 匯出前的影格編輯 | 可透過圖層面板支援 | 不支援 |
| 每影格的匯出格式 | PNG、JPEG、PSD 或 TIFF | 僅 PNG |
| 輸出命名 | 使用你設定的圖層名稱 | 來源檔名加上補零的影格編號 |
| 一次性分割的速度 | 較慢,因為有啟動負擔 | 較快,無需開啟應用程式 |
對於從貼圖、聊天反應、UI 動畫或教學 GIF 中擷取幾張靜態影像的常見情況,瀏覽器路徑能在更短的時間內產生相同的 PNG 集合,且無需安裝。對於需要在匯出前進行逐影格色彩校正、遮罩或重新排列的工作,Photoshop 仍是功能更強大的工具。
如果你正在權衡選項,How to Optimize a GIF in Photoshop (Browser Shortcut) 對此有詳細介紹。
如果你正在權衡選項,How to Split an Image Into a Grid for Instagram Posts 對此有詳細介紹。