一張一張地壓縮圖片是生產力陷阱。無論你是從一次拍攝裡挑選 200 張照片的攝影師、為網頁專案準備素材的開發者,還是上傳新品的電商運營,一次只壓一張每週都會浪費數小時。
| 方法 | 最多圖片數 | 需要的配置 | 隱私 | 最適合 |
|---|---|---|---|---|
| ImgMin (browser) | 一次 20 張 | 無 | ✓ 僅本地 | 快速批次、敏感圖片 |
| Mac Preview | 無限 | 無(系統內建) | ✓ 僅本地 | Mac 使用者、偶爾使用 |
| ImageMagick (CLI) | 無限 | 需要安裝 | ✓ 僅本地 | 高階使用者、自動化 |
| Sharp (Node.js) | 無限 | 開發環境 | ✓ 僅本地 | 開發者、CI/CD 流水線 |
| TinyPNG API | 每月免費 500 張 | API 金鑰 | 上傳到伺服器 | 大批次、伺服器端工作流 |
| iLoveIMG | 批次(免費版有限) | 無 | 上傳到伺服器 | 偶爾的大批次 |
一次把最多 20 張圖片拖到 ImgMin 上。工具會用你瀏覽器的 Canvas API 同時壓縮全部,並打包成一個 ZIP 供下載。零伺服器上傳——所有處理都在你的機器上進行。
如何使用:
20 張圖片處理用時不到 5 秒。無需賬號、無月度限制、無費用。
Mac 使用者無需安裝任何軟體,用內建的「預覽」應用即可批次壓縮圖片:
預覽會在一次操作中匯出並壓縮所有所選圖片。用這種方式通常能在無可見畫質差異下實現 50–70% 的體積縮減。
ImageMagick 是批次圖片處理的黃金標準。它免費、跨平臺,並能在單條命令裡處理上千張圖片:
# Install on Mac
brew install imagemagick
# Compress all JPEGs in current folder to 80% quality
mogrify -quality 80 *.jpg
# Compress all PNGs (lossless optimization)
mogrify -strip *.png
# Batch compress + resize to max 1200px wide
mogrify -resize 1200x1200\> -quality 80 *.jpg
# Convert all PNGs to WebP
mogrify -format webp -quality 85 *.png
mogrify 會就地覆蓋檔案。請始終在副本上操作,或使用 convert input.jpg -quality 80 output-compressed.jpg 進行單檔案的非破壞性流程。如果你是開發者,Sharp 是最快的 Node.js 圖片處理庫,也是自動化流水線的正確選擇:
const sharp = require('sharp');
const glob = require('glob');
const path = require('path');
// Batch compress all JPEGs in /input to /output
glob('input/*.{jpg,jpeg}', (err, files) => {
files.forEach(file => {
const output = path.join('output', path.basename(file));
sharp(file)
.jpeg({ quality: 80, mozjpeg: true })
.toFile(output);
});
});
// Batch convert PNG to WebP
glob('input/*.png', (err, files) => {
files.forEach(file => {
const output = path.join('output', path.basename(file, '.png') + '.webp');
sharp(file)
.webp({ quality: 85 })
.toFile(output);
});
});
Sharp 底層使用 libvips,批次處理通常比 ImageMagick 快 4–5 倍。它是 CMS 圖片流水線和 CI/CD 工作流的推薦之選。
FFmpeg 主要以影片聞名,但也是出色的批次圖片處理器——尤其適合把動態 GIF 轉成 WebP:
# Convert all GIFs to animated WebP
for f in *.gif; do ffmpeg -i "$f" "${f%.gif}.webp"; done
# Batch resize + JPEG compress
for f in *.jpg; do
ffmpeg -i "$f" -vf scale=1200:-1 -q:v 4 "compressed/${f}"
done
Windows 使用者有幾個內建選項:
對於網頁專案,最佳做法是把壓縮作為構建過程的一部分自動進行,這樣不會有任何圖片漏掉最佳化:
vite-plugin-imagemin 或 image-webpack-loader 在構建時壓縮圖片calibreapp/image-actions 步驟,在每個 PR 上自動壓縮圖片calibreapp/image-actions 加進你倉庫的 CI 工作流。每當一個 PR 新增或修改圖片,它都會自動壓縮並提交最佳化後的版本——零手工操作。對最多 20 張圖片,ImgMin 是最快的免費瀏覽器選項——不上傳、無賬號、即時 ZIP 下載。更大批次請用 ImageMagick(命令列)或 Sharp(Node.js)。Mac 使用者可用「預覽」內建的「匯出所選影像」功能。
可以。80% 質量的 JPEG 或 85% 質量的 WebP 能在正常觀看尺寸下無可察覺的畫質差異地減小 50–70% 體積。無損 PNG 壓縮可在零畫質損失下實現 20–30% 縮減。
在「預覽」中開啟所有圖片,全選(Cmd+A),前往 檔案 → 匯出所選影像,選 JPEG 格式、80% 質量。一步完成所有圖片的壓縮和匯出——無需額外軟體。最多 20 張時,瀏覽器裡的 ImgMin 也可以。
最後更新:2026 年 4 月。工具功能和 API 限額可能變化——請以各工具的官方文件為準。