ShareX 螢幕錄製會產生動畫 GIF,其像素尺寸或檔案大小可能超過上傳限制、嵌入限制或顯示需求,而縮小一個過大的 ShareX GIF 最快的方法,就是在瀏覽器中按比例調整其畫布大小,請使用 GIF Resizer。ShareX 會以所選的幀率和品質對螢幕進行截圖來擷取幀,因此 1080p 或 1440p 螢幕在 10 FPS 下,僅僅幾秒鐘的畫面就會迅速達到數十 MB。輸出是完全有效的 GIF,但畫布只是比它需要放入的位置更大。按比例調整畫布大小可在保持長寬比不變的同時減少像素數量,較小的畫布通常會在動畫重新編碼後產生較小的 GIF。由於 ShareX 在擷取後會將每個 GIF 儲存在磁碟上,您可以在本機瀏覽器工具中開啟同一個檔案,無需重新錄製,也無需上傳任何內容。

為什麼 ShareX GIF 會變得過大
ShareX 是一款全螢幕擷取與錄製工具,其 GIF 錄製器的工作原理是以所選的 FPS 進行截圖,再將幀拼接成動畫 GIF。預設情況下,每個幀都是所選擷取區域在螢幕原生解析度下的完整大小。在 10 FPS 下,2560 乘 1440 的擷取區域每幀會產生約 360 萬像素,且 GIF 會以最多 256 色的調色盤對每個幀進行編碼,因此即使動作簡單,檔案大小也會迅速增長。最終產生的 GIF 播放正確,但大小遠遠超出許多接收端所能接受的範圍。聊天平台、電子郵件服務商和 CMS 表單通常將上傳限制在幾 MB 內,且有多個聊天應用程式對 inline 預覽實施嚴格的像素上限。
當接收端在意的是像素尺寸而非檔案大小時,同一段錄製也可能會過高或過寬。在狹窄的聊天預覽中顯示的大畫布 GIF 看起來是正確的,但每次載入都會浪費像素和頻寬。在 ShareX 中降低擷取大小對下一次錄製有幫助,但對已儲存在磁碟上的 GIF 卻毫無作用。
GIF Resizer 對過大 GIF 做了什麼
GIF Resizer 是一款瀏覽器工具,它接收一個動畫 GIF,並輸出具有相同可見幀和幀延遲的縮小版。原始檔案會在當前瀏覽器分頁中解碼,每個可見幀會根據 GIF 的處置指令合成到一個完整畫布上,完整畫布會縮放至您要求的寬度,最後結果會重新編碼為一個全新的 GIF 並提供單一下載。在此過程中,所有資料都不會離開您的裝置:除非您自行儲存新檔案,否則來源檔案、解碼後的像素以及產生的 Blob 都保留在本機。
由於該頁面在調整大小前會先合成每個幀,因此輸出代表的是檢視者在每個幀邊界處實際應該看到的內容,而非原始編碼器儲存的原始區塊。這個區別很重要:許多 GIF 會儲存第一張影像加上僅更新部分畫布的小區塊,而每個區塊可能帶有影響下一幀顯示內容的處置指令。將每個區塊視為完整圖片並獨立調整其大小,可能會留下遺失的背景、透明破洞或拖尾殘影。先合成再調整大小,可避免這些瑕疵。
寬度是唯一的幾何控制項。該頁面會從 GIF 標頭讀取來源畫布比例,並使用您輸入的寬度以整數像素計算輸出高度。無法裁切、填充、單獨拉伸某個軸、旋轉動畫、變更幀順序或選擇新的長寬比。如果計畫中包含任何此類變更,則必須在調整大小之前完成。
如何調整過大的 ShareX GIF 大小
解決方法是三步驟的瀏覽器工作流程。整個過程在本機執行,因此 ShareX 檔案永遠不會離開裝置。
- 選擇 ShareX 儲存在磁碟上的動畫 GIF。該頁面接受一個最大 20 MB 的 GIF,並讀取其邏輯畫布尺寸。請確認頁面上顯示的偵測來源畫布與您錄製的內容相符:1920 乘 1080 的螢幕擷取應回報 1920 乘 1080,自訂區域應回報其本身的寬度和高度。如果偵測到的畫布看起來不正確,顯示錄製內容已損壞或選擇了錯誤的檔案。
- 以整數像素輸入目標寬度。寬度是唯一的幾何輸入。選擇符合您接收端的寬度:聊天預覽用較窄的值、文件嵌入用中等範圍、部落格插圖用較大的尺寸。該頁面會根據來源比例計算對應的高度,並將其四捨五入為整數像素,因此 1920 乘 1080 的來源以 480 輸入時,會產生 480 乘 270 的輸出。
- 選擇 Resize GIF,然後下載並檢視結果。該頁面會在本機解碼動畫、合成每個幀、縮放可見畫布,並編碼成新的 GIF。新檔案準備就緒後,下載連結隨即出現。請將其儲存至磁碟,並在瀏覽器或目標應用程式中開啟結果。在預期的顯示大小下觀看第一個完整循環,並檢查時間、文字可讀性和邊緣品質。
從來源端縮減 GIF 大小的 ShareX 錄製調整
調整已儲存 GIF 的大小是解決磁碟上現有檔案的正確方法,而一些 ShareX 設定也能從一開始就避免下一次錄製變得過大。下表概述了每個設定對輸出檔案的方向性影響。
| ShareX 設定 | 對輸出 GIF 大小的影響方向 |
|---|---|
| 擷取區域尺寸 | 較大的區域會產生每幀更多像素,進而產生更大的 GIF;較小的區域則每幀像素較少,GIF 也較小。 |
| 擷取幀率 (FPS) | 較高的 FPS 會為動畫加入更多幀並增加檔案大小;較低的 FPS 則會移除幀並縮小檔案。 |
| GIF 編碼器品質 | 較高的品質可保留細節並增加檔案大小;較低的品質則會捨棄細節並縮減檔案大小。 |
| 輸出格式選擇 | MP4 能以比 GIF 小得多的檔案擷取相同的動畫;僅在確實需要 GIF 時才選擇 GIF。 |
對於已儲存的擷取內容,調整大小才是真正符合接收端的變更,而品質或幀率的調整則代表必須從頭重新錄製。
哪些內容會被變更,哪些會被保留
準確理解工具變更的內容,有助於對輸出建立正確的預期。
保留:解碼後的可見幀順序,以及控制每個幀停留在螢幕上時間的解碼延遲。
重建:輸出 GIF 是全新的編碼,而非原始串流的逐位元組縮小,並為每個完整的輸出幀建立最多 256 色的新調色盤。透明像素仍維持單位元透明,這也是這個格式本身支援的透明模型。
不保留:原始調色盤表格、元資料延伸、編碼器原本使用的最佳化策略,以及任何有限的循環次數。產生的 GIF 會連續循環播放,而不會在固定次數的循環後停止。
由此衍生出兩個實際影響。首先,縮小尺寸通常會減少像素數,但並不保證檔案會變小:幀內容、調色盤選擇和 GIF 壓縮都會影響最終的位元組數,因此即使畫布變小,輸出仍可能大於原始檔案。其次,經過第二次調色盤轉換後,漸層、抖動和細膩的攝影細節看起來可能會有所不同,因此下載的結果在發布前值得檢查。
當僅調整畫布大小仍不足時
當 GIF 的大小與其接收端不符時,調整畫布大小是正確的修正方法,但在某些情況下需要進行不同的變更,或在調整大小後再進行第二次處理。
如果檔案超過接收端的位元組上限而非像素上限,較小的畫布有幫助,但並不保證檔案夠小。在這種情況下,下一步是進行專門的最佳化處理,以較小的調色盤重新編碼動畫。同套工具中的 GIF Optimizer 就是為第二次處理而設計,它會顯示實際的輸出大小,而非承諾某個結果。
如果錄製需要裁切、填充為新的長寬比、旋轉或變更幀順序,則這些編輯必須在調整大小之前完成,因為該頁面不會裁切、填充、單獨拉伸某個軸、旋轉或重新排序幀。
如果來源超過 20 MB、擁有超過 50 個影像幀,或任一邊的邏輯畫布大於 4,096 像素,該頁面會在配置輸出畫布前拒絕該檔案,且不會留下任何殘留的下載項目。重新編碼來源使其符合這些限制,是唯一的解決途徑。
如果接收端實際上需要不同的格式,例如簡報用的 MP4 或現代 CMS 用的 WebP,GIF Resizer 就不適合:它僅匯出 GIF。