圖片壓縮
免費線上圖片壓縮:批次縮小照片檔案、轉成 JPG/WebP/PNG、限制最長邊,顯示壓縮前後大小並可打包 ZIP。免註冊,圖片只在瀏覽器處理不上傳。
- 批次壓縮
- 格式轉換
- 縮小尺寸
- 圖片不上傳
PNG 是無損格式,品質設定不適用。
🔒 所有計算都在你的瀏覽器內完成,資料不會上傳到任何伺服器。
什麼時候會用到
- 網站與部落格:把相機或手機照片縮到 1920 像素、轉成 WebP,網頁載入更快。
- 上傳有大小限制時:報名表、政府網站或電商後台限制檔案大小,先壓縮再上傳。
- Email 與通訊軟體:一次壓縮多張照片並打包 ZIP,寄送更快。
- 節省手機或雲端空間:批次縮小舊照片,保留畫質又省空間。
使用說明
- 按「選擇圖片」或把圖片拖曳到虛線框裡,可以一次加入多張;處理完會顯示縮圖與壓縮前後的檔案大小。
- 選擇輸出格式(JPG、WebP、PNG),用滑桿調整品質;需要縮小尺寸時在「最長邊上限」填像素,例如 1920。改設定後所有圖片會自動重新處理。
- 每張圖片按「下載」個別存檔,或按「全部打包下載(ZIP)」一次帶走;按「清除」可重新開始。
實際範例
一張手機拍的 4032×3024 照片、檔案 3,500,000 位元組:輸出格式選 JPG、品質 80、最長邊上限填 1920。尺寸會等比例縮成 1920×1440;假設瀏覽器編碼後是 420,000 位元組,卡片會顯示「3.34 MB → 410.2 KB」與「縮小 88%」,也就是新檔只剩原本的 12%。
一張 120,000 位元組(117.2 KB)的 PNG 截圖,照樣輸出 PNG 若得到 156,000 位元組,會顯示「117.2 KB → 152.3 KB」「比原檔大 30%」;改輸出 WebP 得到 48,000 位元組時,則顯示「117.2 KB → 46.9 KB」「縮小 60%」。實際大小依圖片內容與瀏覽器而定,這裡的位元組數是假設值,顯示的大小與百分比是工具的計算結果。
批次三張:3.34 MB → 410.2 KB、117.2 KB → 152.3 KB、830.1 KB → 207.0 KB,上方總計顯示「共 3 張:4.26 MB → 769.5 KB(縮小 82%)」。總計是把全部位元組相加後再比較,不是三張百分比的平均。
結果怎麼看
- 綠色「縮小 N%」表示新檔比原檔小 N%;紅色「比原檔大 N%」表示重新編碼後反而變大,常見於本來就壓得很小的 JPG 用高品質再存一次,或 PNG 存成 PNG,這時直接用原檔即可。
- 變化不到 0.5% 會顯示「<1%」。尺寸欄有箭頭代表解析度有縮小,只有一組數字表示維持原尺寸。
- 出現「瀏覽器不支援此格式,已改輸出 PNG」代表你的瀏覽器(多半是舊版 Safari)無法輸出 WebP,檔案已自動改存 PNG,副檔名也會跟著改。
- 1 KB 以 1024 位元組計算,與 Windows 檔案總管相同;Mac 的 Finder 以 1000 計算,顯示的數字會略有差異。
原理與計算方法
- 讀取:用瀏覽器內建的 createImageBitmap 解碼,會依照片的 EXIF 方向轉正;無法解碼時改用 <img> 載入(例如 SVG)。
- 縮小:最長邊超過上限時,寬與高同乘「上限 ÷ 最長邊」後四捨五入,短邊至少 1 px;只縮小不放大,並使用 canvas 的高品質平滑縮放。
- 編碼:把圖畫到 canvas 後呼叫 canvas.toBlob(格式, 品質),品質 10~100 對應 0.1~1.0。JPG 沒有透明度,透明處先鋪白底;PNG 是無損格式,品質設定不適用。
- 比較:變化百分比 = |1 − 新檔大小 ÷ 原檔大小| × 100,四捨五入到整數;總計以所有成功項目的位元組總和計算。
- ZIP:用 fflate 在瀏覽器內打包,圖片已經壓縮過所以只封裝不再壓縮;同名檔案自動加上 -2、-3,不會互相覆蓋。
適用限制
- 重新編碼會移除 EXIF(拍攝時間、GPS 位置、相機型號)與色彩描述檔;需要保留這些資料時不適合使用。廣色域(Display P3)的照片可能會有些微色差。
- 動態 GIF、動態 WebP 只會保留第一格;HEIC 只有支援的瀏覽器(例如 Safari)能讀取,其他瀏覽器會顯示無法讀取。
- 壓縮結果由瀏覽器內建的編碼器決定,同樣的設定在 Chrome、Firefox、Safari 得到的大小與畫質不同;也無法直接指定「壓到 200 KB 以下」這種目標大小,需要自行調整品質。
- 超大圖片受瀏覽器 canvas 尺寸與記憶體限制(iPhone 的 Safari 特別嚴格),可能無法輸出,可以先填寫最長邊上限再試。
常見問題
品質要設多少比較好?
一般照片用 JPG 或 WebP、品質 70~80,肉眼幾乎看不出差別,檔案通常能小很多;需要印刷或後製時用 90 以上。文字截圖、圖表建議用 PNG 或 WebP,JPG 容易在文字邊緣出現雜點。
為什麼壓縮後檔案反而變大?
原圖已經壓得很好(例如本來就是低品質 JPG)時,用較高品質重新編碼會變大;PNG 轉 PNG 也常變大,因為瀏覽器內建的 PNG 編碼器沒有特別最佳化。這時可以降低品質、改用 WebP,或直接使用原檔。
透明背景的 PNG 轉成 JPG 會怎樣?
JPG 不支援透明,透明的地方會變成白色。要保留透明背景請選 WebP 或 PNG。
我的圖片會被上傳嗎?
不會。讀取、壓縮、打包 ZIP 都在你的瀏覽器裡完成,圖片不會傳到任何伺服器,也不會被儲存,關閉頁面就消失。
怎麼把照片壓到 1 MB 或 200 KB 以下?
先在「最長邊上限」填 1600~1920,再把品質調到 70~80;還不夠小就再降低品質或尺寸。每張圖都會顯示壓縮後大小,可以邊調邊看。
JPG 和 WebP 該選哪一個?
WebP 在相近畫質下通常比 JPG 小約 25~35%,主流瀏覽器都支援;要給舊系統、印刷或只收 JPG 的上傳表單使用時,選 JPG 比較保險。
壓縮後會保留照片的拍攝資訊(EXIF)嗎?
不會。重新輸出時只保留畫面,拍攝時間、GPS 位置等資訊都會移除,分享照片時也比較不會洩漏位置。
參考來源
- HTMLCanvasElement: toBlob() method — MDN Web Docs
- Image file type and format guide — MDN Web Docs
- HTML Standard — 4.12.5 The canvas element — WHATWG