Back to Blog
Tutorials

如何批次壓縮圖片:2025完整指南

掌握批次圖片壓縮以實現更快的工作流程。學習工具、技術和自動化,一次壓縮多張照片。節省處理數百張圖片的時間。

AuthorTinyImagePro Team
Published2025年11月10日
Read Time8 min read

逐個處理數百或數千張圖片既耗時又低效。批次壓縮允許您使用一致的品質設定同時壓縮多張圖片,節省數小時的手動工作。本綜合指南涵蓋了2025年批次壓縮圖片所需的所有知識。

批次圖片壓縮 - 一次上傳多種圖片格式

為什麼要批次壓縮圖片

節省時間

手動處理

  • 100張圖片 × 每張2分鐘 = 200分鐘(3.3小時)
  • 重複點擊和等待
  • 易出錯且不一致

批次處理

  • 100張圖片總計5-10分鐘
  • 設定一次,全部壓縮
  • 所有圖片結果一致

節省時間:減少95%的處理時間

圖片間的一致性

好處

  • 所有圖片相同的品質設定
  • 統一的檔案大小
  • 可預測的結果
  • 專業外觀
  • 更易管理

使用場景

  • 網站圖片畫廊
  • 產品目錄
  • 相簿
  • 行銷材料
  • 社群媒體內容日曆

常見批次壓縮場景

場景 圖片數量 節省時間 典型目標
網站遷移 500-5,000 15-50小時 總大小減少70-80%
照片庫清理 1,000-10,000 30-150小時 節省儲存空間
產品目錄 100-1,000 3-30小時 一致的品質/大小
社群媒體活動 50-200 2-7小時 平台特定最佳化
活動攝影 200-2,000 7-60小時 可分享的大小
電子郵件行銷 20-100 1-3小時 低於大小限制

批次圖片壓縮的最佳工具

圖片壓縮工作流程,展示壓縮前後對比

線上工具

TinyImagePro(推薦)

功能

  • 免費,無需註冊
  • 用戶端處理(隱私友好)
  • 桌面端一次最多上傳20張圖片,行動端最多10張
  • 可調品質設定
  • 格式轉換(JPEG、PNG、WebP)
  • ZIP下載所有壓縮圖片

工作流

  1. 造訪 TinyImagePro.com
  2. 拖放多張圖片
  3. 選擇壓縮級別或預設
  4. 點擊「全部壓縮」
  5. 單獨下載或作為ZIP

最適合:桌面端和行動端的快速批次、注重隱私的使用者、無需安裝

限制:桌面端每批最多20張圖片,行動端最多10張(對於更大的集合可重複批次)

Squoosh(Google)

功能

  • 進階壓縮選項
  • 多格式支援
  • 並排比較
  • 現代編解碼器(WebP、AVIF)

限制:一次處理一張圖片(不是真正的批次處理)

最適合:批次處理前測試壓縮設定

TinyPNG

功能

  • 智慧有損壓縮
  • WebP支援
  • 批次上傳(最多20張圖片)
  • 自動化API

定價

  • 免費:每月20張圖片,每張5MB
  • 專業版:每月500張圖片25美元/年

最適合:PNG最佳化、每月定期批次

桌面軟體

Adobe Lightroom

功能

  • 專業批次匯出
  • 基於預設的工作流程
  • 每種格式的品質控制
  • 中繼資料管理
  • RAW檔案支援

工作流

  1. 將照片匯入目錄
  2. 選擇所有要匯出的圖片
  3. 檔案 → 匯出
  4. 選擇匯出預設(品質、尺寸、格式)
  5. 點擊匯出

定價:每月9.99美元(攝影計劃)

最適合:攝影師、大型照片庫、專業工作流程

XnConvert(免費)

功能

  • 出色的批次處理
  • 動作/預設
  • 500+格式支援
  • 調整大小、旋轉、浮水印
  • 跨平台(Windows、Mac、Linux)

工作流

  1. 新增檔案或整個資料夾
  2. 新增動作:調整大小、品質調整
  3. 設定輸出格式和設定
  4. 轉換

最適合:進階使用者、複雜批次操作、免費解決方案

ImageOptim(僅Mac,免費)

功能

  • 拖放批次處理
  • 無損和有損壓縮
  • 自動中繼資料移除
  • 多個最佳化工具組合
  • 處理速度非常快

工作流

  1. 將圖片拖入ImageOptim
  2. 自動最佳化開始
  3. 檔案被覆蓋(或單獨儲存)

最適合:Mac使用者、快速最佳化、無損壓縮

RIOT(Radical Image Optimization Tool)- Windows,免費

功能

  • 即時預覽
  • 批次處理
  • 多格式支援
  • 品質比較

最適合:Windows使用者、視覺品質控制

命令列工具

ImageMagick

安裝

# macOS
brew install imagemagick

# Ubuntu/Debian
sudo apt-get install imagemagick

# Windows
# 從imagemagick.org下載

基本批次壓縮

# 將資料夾中所有JPEG壓縮至80%品質
mogrify -quality 80 -strip *.jpg

# 調整大小並壓縮
mogrify -resize 1600x -quality 80 -strip *.jpg

# 也處理子資料夾
find . -type f -name "*.jpg" -exec mogrify -quality 80 -strip {} \;

進階批次處理

# 將所有PNG轉換為最佳化的JPEG
mogrify -format jpg -quality 85 -strip *.png

# 調整至最大寬度,保持縱橫比
mogrify -resize 1920x\> -quality 82 *.jpg

# 在單獨的資料夾中建立縮圖
mkdir thumbnails
mogrify -path thumbnails -thumbnail 400x400 -quality 75 *.jpg

最適合:自動化、伺服器端處理、進階使用者、腳本編寫

cwebp(Google WebP編碼器)

批次轉換為WebP

# 將所有JPEG轉換為WebP
for file in *.jpg; do
    cwebp -q 80 "$file" -o "${file%.jpg}.webp"
done

# Windows PowerShell
Get-ChildItem -Filter *.jpg | ForEach-Object {
    cwebp -q 80 $_.FullName -o "$($_.BaseName).webp"
}

最適合:WebP轉換、現代網頁最佳化

pngquant(PNG最佳化器)

批次PNG壓縮

# 有損PNG壓縮(256色)
pngquant --quality=65-80 --ext .png --force *.png

# 使用自訂輸出批次處理
pngquant --quality=70-85 *.png --output optimized-*.png

最適合:PNG檔案大小減少、保持透明度

分步指南:批次壓縮圖片

批次處理多張圖片

場景1:網站圖片畫廊(100張圖片)

目標:將100張產品照片從每張5MB(總計500MB)減少到100MB以下

方法:TinyImagePro + 手動批次

步驟

  1. 組織圖片

    /products
    ├── batch-01(圖片1-20)
    ├── batch-02(圖片21-40)
    ├── ...
    └── batch-05(圖片81-100)
    
  2. 處理第一批

    • 在桌面端向 TinyImagePro 上傳最多20張圖片,行動端最多10張
    • 設定品質:80%
    • 目標尺寸:1600×1600px
    • 點擊「全部壓縮」
    • 下載為ZIP
  3. 重複所有批次

    • 處理批次2-10
    • 保持一致的設定
    • 下載每批
  4. 驗證結果

    • 檢查檔案大小(目標:每張800KB-1MB)
    • 抽查圖片品質
    • 總大小:~90MB(減少82%)

所需時間:30-45分鐘(vs. 手動3+小時)

場景2:照片庫最佳化(1,000張度假照片)

目標:將1,000張家庭照片從35GB減少到10GB以下用於雲端儲存

方法:XnConvert(桌面)

步驟

  1. 下載並安裝XnConvert

    • 從xnview.com下載
    • 安裝並啟動
  2. 新增檔案

    • 輸入分頁 → 新增檔案
    • 選擇所有1,000張照片(或新增資料夾)
  3. 設定動作

    • 動作分頁 → 新增動作
    • 動作1:調整大小
      • 模式:適合寬度/高度
      • 寬度:1600px
      • 保持縱橫比:是
    • 動作2:調整品質(如果是JPEG)
      • 品質:80%
  4. 設定輸出選項

    • 輸出分頁
    • 格式:JPEG
    • 品質:80
    • 目標:建立資料夾「optimized」
    • 檔名:{Filename}_optimized
  5. 處理

    • 點擊「轉換」
    • 等待批次完成(10-20分鐘)
  6. 驗證

    • 檢查輸出資料夾
    • 總大小:~9.5GB(減少73%)
    • 抽查隨機圖片的品質

所需時間:30分鐘(vs. 手動30+小時)

場景3:社群媒體內容日曆(50個貼文)

目標:為Instagram準備50張圖片(1080×1080px,最佳化品質)

方法:命令列批次處理腳本

步驟

  1. 建立批次處理腳本

Mac/Linux (instagram-batch.sh):

#!/bin/bash

# 建立輸出目錄
mkdir -p instagram_optimized

# 處理所有圖片
for file in *.jpg *.jpeg *.png; do
    if [ -f "$file" ]; then
        # 調整至1080x1080並壓縮
        convert "$file" \
            -resize 1080x1080^ \
            -gravity center \
            -extent 1080x1080 \
            -quality 82 \
            -strip \
            "instagram_optimized/${file%.*}_insta.jpg"
        echo "已處理: $file"
    fi
done

echo "批次處理完成!檢查instagram_optimized資料夾"

Windows (instagram-batch.bat):

@echo off
mkdir instagram_optimized

for %%f in (*.jpg *.jpeg *.png) do (
    magick "%%f" -resize 1080x1080^ -gravity center -extent 1080x1080 -quality 82 -strip "instagram_optimized\%%~nf_insta.jpg"
    echo 已處理: %%f
)

echo 批次處理完成!
pause
  1. 執行腳本

    # Mac/Linux
    chmod +x instagram-batch.sh
    ./instagram-batch.sh
    
    # Windows
    instagram-batch.bat
    
  2. 結果

    • 50張圖片在2-3分鐘內最佳化
    • 全部1080×1080px
    • 壓縮至每張約1-1.5MB
    • 準備好Instagram上傳

所需時間:5分鐘(vs. 手動1.5小時)

場景4:電商產品目錄(300件商品)

目標:建立每張產品圖片的多個版本(原始、大、中、縮圖)

方法:ImageMagick批次處理腳本,多個輸出

腳本

#!/bin/bash

# 建立輸出目錄
mkdir -p {original,large,medium,thumbnail}

# 處理每張圖片
for img in source/*.jpg; do
    filename=$(basename "$img" .jpg)

    # 原始品質(存檔)
    cp "$img" "original/${filename}.jpg"

    # 大(產品頁)
    convert "$img" \
        -resize 2000x2000 \
        -quality 90 \
        -strip \
        "large/${filename}_large.jpg"

    # 中(分類頁)
    convert "$img" \
        -resize 800x800 \
        -quality 85 \
        -strip \
        "medium/${filename}_medium.jpg"

    # 縮圖(網格)
    convert "$img" \
        -resize 400x400^ \
        -gravity center \
        -extent 400x400 \
        -quality 80 \
        -strip \
        "thumbnail/${filename}_thumb.jpg"

    echo "已處理: $filename(4個版本)"
done

echo "完成!處理了$(ls source/*.jpg | wc -l)個產品"

結果

  • 300個產品 × 4個版本 = 產生1,200張圖片
  • 所有產品品質一致
  • 在單獨的資料夾中組織
  • 時間:15-20分鐘(vs. 手動10+小時)

進階批次壓縮技術

保留資料夾結構

批次處理巢狀資料夾時,保留組織:

# ImageMagick:處理整個目錄樹
find ./source -type f \( -name "*.jpg" -o -name "*.png" \) | while read file; do
    # 取得相對路徑
    rel_path="${file#./source/}"
    output_dir="./optimized/$(dirname "$rel_path")"

    # 建立輸出目錄
    mkdir -p "$output_dir"

    # 壓縮圖片
    convert "$file" \
        -resize 1600x -quality 80 -strip \
        "$output_dir/$(basename "$file")"
done

基於檔案大小的條件處理

僅壓縮超過特定大小的圖片:

#!/bin/bash

# 僅壓縮超過1MB的圖片
for img in *.jpg; do
    size=$(stat -f%z "$img" 2>/dev/null || stat -c%s "$img" 2>/dev/null)
    size_mb=$((size / 1048576))

    if [ $size_mb -gt 1 ]; then
        convert "$img" -quality 80 -strip "compressed_$img"
        echo "已壓縮: $img ($size_mb MB)"
    else
        echo "已跳過: $img ($size_mb MB - 已經很小)"
    fi
done

平台特定批次處理

為不同平台建立不同版本:

#!/bin/bash

img=$1
basename="${img%.*}"

# Instagram(1080x1080)
convert "$img" -resize 1080x1080^ -gravity center -extent 1080x1080 \
    -quality 82 -strip "${basename}_instagram.jpg"

# Facebook(最大2048寬)
convert "$img" -resize 2048x -quality 85 -strip "${basename}_facebook.jpg"

# Twitter(1200x675)
convert "$img" -resize 1200x675^ -gravity center -extent 1200x675 \
    -quality 78 -strip "${basename}_twitter.jpg"

# Pinterest(1000x1500)
convert "$img" -resize 1000x1500! -quality 83 -strip "${basename}_pinterest.jpg"

echo "建立了$img的4個社群媒體版本"

為所有圖片執行:

for img in *.jpg; do
    ./social-media-batch.sh "$img"
done

批次新增浮水印

為所有圖片套用浮水印:

#!/bin/bash

watermark="logo.png"

for img in *.jpg; do
    convert "$img" "$watermark" \
        -gravity SouthEast \
        -geometry +20+20 \
        -composite \
        -quality 85 \
        "watermarked_$img"
    echo "已新增浮水印: $img"
done

漸進式JPEG批次建立

將所有圖片轉換為漸進式JPEG:

# ImageMagick
mogrify -interlace Plane -quality 82 *.jpg

# 或使用MozJPEG以獲得更好壓縮
for img in *.jpg; do
    cjpeg -progressive -quality 85 -outfile "progressive_$img" "$img"
done

帶回退的格式轉換

建立WebP版本和JPEG回退:

#!/bin/bash

for img in *.jpg; do
    basename="${img%.jpg}"

    # 建立最佳化的JPEG
    convert "$img" -quality 85 -strip "${basename}_opt.jpg"

    # 建立WebP版本
    cwebp -q 80 "$img" -o "${basename}.webp"

    echo "為$img建立了JPEG和WebP"
done

自動化和工作流程

監視資料夾自動化

自動壓縮新增到資料夾的新圖片:

Mac(使用Automator + 資料夾動作)

  1. 開啟Automator → 新增文件 → 資料夾動作
  2. 選擇要監視的資料夾
  3. 新增動作:
    • 過濾Finder項目(僅圖片)
    • 執行Shell腳本:
      for f in "$@"; do
          convert "$f" -resize 1600x -quality 80 -strip "${f%.*}_compressed.jpg"
      done
      
  4. 儲存資料夾動作

Linux(使用inotifywait)

#!/bin/bash

watch_dir="/path/to/watch"
output_dir="/path/to/output"

inotifywait -m -e create -e moved_to --format '%w%f' "$watch_dir" | while read file; do
    if [[ $file =~ \.(jpg|jpeg|png)$ ]]; then
        filename=$(basename "$file")
        convert "$file" -resize 1600x -quality 80 -strip "$output_dir/$filename"
        echo "自動壓縮: $filename"
    fi
done

帶進度條的批次處理

顯示大批次的進度:

#!/bin/bash

total=$(ls *.jpg | wc -l)
current=0

for img in *.jpg; do
    ((current++))
    percent=$((current * 100 / total))

    printf "\r處理中: %d/%d (%d%%) - %s" "$current" "$total" "$percent" "$img"

    convert "$img" -quality 80 -strip "compressed_$img"
done

echo -e "\n\n批次處理完成!"

基於雲端的批次處理

使用Cloudinary API(Node.js範例):

const cloudinary = require('cloudinary').v2;
const fs = require('fs');
const path = require('path');

cloudinary.config({
    cloud_name: 'your_cloud_name',
    api_key: 'your_api_key',
    api_secret: 'your_api_secret'
});

// 批次上傳和最佳化
const images = fs.readdirSync('./images');

images.forEach(async (img) => {
    const filepath = path.join('./images', img);

    try {
        const result = await cloudinary.uploader.upload(filepath, {
            quality: 'auto:best',
            fetch_format: 'auto',
            folder: 'compressed'
        });

        console.log(`已上傳: ${img} -> ${result.secure_url}`);
    } catch (error) {
        console.error(`上傳${img}時出錯:`, error);
    }
});

批次壓縮最佳實務

批次處理前

備份原件 - 永遠不要覆蓋來源檔案 ✅ 在樣本上測試 - 先處理5-10張圖片以驗證設定 ✅ 組織檔案 - 按用途、大小或品質需求分組 ✅ 檢查檔案類型 - 將JPEG與PNG分開 ✅ 記錄設定 - 記錄壓縮參數以供將來參考 ✅ 計劃輸出結構 - 決定資料夾組織

批次處理時

使用一致的設定以獲得統一結果 ✅ 監控前幾個輸出以盡早發現錯誤 ✅ 按邏輯批次處理(按資料夾、日期或類別) ✅ 清晰命名輸出(compressed_、optimized_等) ✅ 保持原件與處理檔案分開 ✅ 記錄處理以進行故障排除

批次處理後

驗證隨機樣本 - 檢查10-20張圖片的品質 ✅ 比較檔案大小 - 確保預期減少 ✅ 在實際使用中測試 - 上傳到網站、社群媒體等 ✅ 檢查相容性 - 驗證格式按預期工作 ✅ 記錄工作流程 - 儲存腳本/設定以供將來使用 ✅ 安全存檔原件

批次壓縮故障排除

問題:批次處理中途失敗

原因

  • 損壞的圖片檔案
  • 磁碟空間不足
  • 檔案權限問題
  • 記憶體限制

解決方案

  1. 首先檢查損壞的檔案:
    identify -verbose *.jpg > /dev/null 2>&1
    
  2. 確保足夠的可用磁碟空間(總圖片大小的2-3倍)
  3. 使用適當的權限執行(如需要,chmod、sudo)
  4. 以更小的批次處理
  5. 增加系統記憶體分配

問題:輸出品質不一致

原因

  • 混合來源品質
  • 不同的圖片尺寸
  • 不同的內容類型(照片vs圖形)

解決方案

  1. 按類型分開
    # 處理照片
    mogrify -quality 80 photos/*.jpg
    
    # 分別處理圖形
    mogrify -quality 90 graphics/*.png
    
  2. 條件處理
    for img in *.jpg; do
        if identify -format '%w' "$img" | awk '{if($1>2000)exit 0;exit 1}'; then
            convert "$img" -resize 1600x -quality 80 "optimized_$img"
        else
            convert "$img" -quality 85 "optimized_$img"
        fi
    done
    

問題:批次處理時間太長

原因

  • 一次處理太多圖片
  • 高解析度來源
  • 複雜操作(多次調整大小、浮水印)

解決方案

  1. 並行處理
    # GNU Parallel(透過brew/apt安裝)
    ls *.jpg | parallel convert {} -quality 80 optimized_{}
    
    # 或使用xargs
    find . -name "*.jpg" | xargs -P 4 -I {} convert {} -quality 80 opt_{}
    
  2. 以更小批次處理(一次100-200)
  3. 使用更快的壓縮演算法
  4. 升級硬體或使用雲端處理

問題:輸出檔案比預期大

原因

  • 品質設定太高
  • 內容格式不合適
  • 中繼資料未去除

解決方案

  1. 降低品質:75-80%而非85-90%
  2. 轉換格式
    mogrify -format jpg -quality 85 *.png  # PNG轉JPEG
    
  3. 去除中繼資料
    mogrify -strip -quality 80 *.jpg
    
  4. 如果過大則調整大小
    mogrify -resize 1920x\> -quality 80 *.jpg
    

批次壓縮比較

方法 速度(100張) 易用性 靈活性 成本 最適合
TinyImagePro 10-15分鐘 非常容易 中等 免費 快速批次、初學者
XnConvert 3-5分鐘 容易 免費 桌面使用者、複雜工作流程
Lightroom 5-8分鐘 中等 ¥67/月 攝影師、RAW檔案
ImageMagick 2-4分鐘 困難 非常高 免費 自動化、進階使用者
Cloudinary 5-10分鐘 中等 付費 基於雲端、API整合

常見問題

問:我可以免費線上批次壓縮圖片嗎? 答:可以。TinyImagePro允許桌面端每批最多20張圖片、行動端最多10張,且免費使用。對於更大的集合可以重複批次。其他選項包括TinyPNG(每月20張免費)或桌面工具如XnConvert(無限制,免費)。

問:批次壓縮1,000張圖片最快的方法是什麼? 答:命令列工具如ImageMagick與並行處理。使用適當的硬體,1,000張圖片預計10-20分鐘。

問:批次壓縮會降低品質嗎? 答:僅在使用有損壓縮時。在75-85% JPEG品質下,品質損失最小。始終先在樣本上測試。

問:如何批次壓縮圖片而不損失品質? 答:使用無損PNG壓縮(OptiPNG、pngquant)或90-95%品質的JPEG。檔案大小減少將較小(10-30% vs 60-80%)。

問:我可以撤銷批次壓縮嗎? 答:不能。始終保留原始檔案備份。壓縮圖片無法恢復到原始品質。

問:批次壓縮應該使用什麼品質設定? 答:大多數用途75-85%。專業/作品集更高(85-90%),縮圖/電子郵件更低(70-75%)。

問:如何在Mac/Windows上批次壓縮圖片? 答:Mac:ImageOptim(拖放),Windows:RIOT或XnConvert。兩者都是免費且使用者友好的。

問:我可以在手機上批次壓縮圖片嗎? 答:可以,但有限。Photo Compress(iOS)和Image Compressor(Android)等應用程式支援批次處理,通常一次10-20張圖片。

問:批次壓縮對珍貴照片安全嗎? 答:是的,如果您保留原始備份。處理副本,永遠不要處理原件。對於不可替代的照片使用無損或高品質設定(85-90%)。

問:批次壓縮後我的圖片會小多少? 答:在75-85%品質下通常小60-80%。根據圖片內容、來源品質和設定而異。先測試樣本。

結論

批次圖片壓縮對於有效管理大量圖片至關重要。無論您是最佳化網站、組織照片庫還是準備社群媒體內容,批次處理都能節省無數小時,同時確保一致的品質。

要點總結

  • 選擇正確的工具滿足您的需求(線上、桌面或命令列)
  • 在樣本上測試設定然後處理整個批次
  • 批次處理前始終備份原件
  • 使用一致的設定以獲得統一結果
  • 自動化工作流程用於重複任務
  • 透過抽查驗證結果
  • 目標75-85%品質以獲得最佳大小/品質平衡

準備好批次壓縮您的圖片了嗎?試試我們的免費圖片壓縮工具,桌面端一次可快速批次處理最多20張圖片,行動端最多10張。

相關指南:

Ready to Compress Your Images?

Try our free online image compression tool. No signup required, 100% secure.

Start Compressing Now

Related Articles

如何減小圖片檔案大小:2025完整指南
Tutorials

如何減小圖片檔案大小:2025完整指南

大圖片檔案會減慢網站速度、佔用儲存空間並使分享變得困難。無論您需要為電子郵件、網站效能、社群媒體還是儲存管理減小檔案大小,本綜合指南涵蓋了使圖片更小同時保持可接受品質的每種方法。 為什麼要減小圖片檔案大小 網站效能 影響: 圖片佔平均頁面重量的50-70% 頁面載入延遲1秒 = 轉換率下降7% Google將頁面速...

6 min read
如何壓縮社群媒體照片:2025平台專用指南
Tutorials

如何壓縮社群媒體照片:2025平台專用指南

社群媒體平台會自動壓縮上傳的照片,常常導致品質損失和像素化。了解每個平台的要求並正確預壓縮照片可以確保您的圖片看起來最好,同時快速載入。本綜合指南涵蓋2025年所有主要社群媒體平台的照片壓縮。 為什麼要預壓縮社群媒體照片 平台重新壓縮 問題:每個社群媒體平台在上傳照片時都會套用自己的壓縮。 發生的事情: 您上傳高品...

6 min read
如何壓縮網站圖片:2025完整指南
Tutorials

如何壓縮網站圖片:2025完整指南

圖片通常佔網站總頁面重量的50-70%,使圖片最佳化成為改善網站效能最有影響力的方式之一。正確壓縮和最佳化的圖片可以更快載入頁面、提高SEO排名、改善使用者體驗並降低託管成本。本綜合指南涵蓋了2025年壓縮和最佳化網站圖片所需的所有知識。 為什麼網站圖片最佳化很重要 頁面載入速度和使用者體驗 影響: 53%的行動使用...

8 min read