ServBay 內建命令列圖片處理工具使用文件
作為專為開發者打造的本機 Web 開發環境,ServBay 不僅整合多種語言執行環境與資料庫,還內建多款強大的命令列圖片處理工具。這些工具適用於 Web 開發中的常見任務,例如圖片格式轉換、壓縮優化、尺寸變更、加上浮水印等,尤為重要。本文將詳盡介紹 ServBay 隨附的幾款主流圖片處理工具,並分享實用的命令列技巧,協助你在本機開發環境中高效管理圖片檔案。
前置條件
請確認你已順利安裝並運行 ServBay。本文所述所有工具皆已隨 ServBay 預裝,無需額外安裝或設定。
常用圖片處理工具
ServBay 預載以下常見的命令列圖像處理工具:
ImageMagick
ImageMagick 是一個功能全面、歷史悠久的圖像處理工具集與程式庫,支援幾乎所有主流圖片格式。開發者常用來進行格式轉換、尺寸更改與進階效果處理。
基本用法
轉換圖像格式 將 JPEG 圖片轉換為 PNG 格式:
bashmagick convert input.jpg output.png
1調整圖像大小 將圖片尺寸調整為 300x300 像素:
bashmagick convert input.jpg -resize 300x300 output.jpg
1加上浮水印 在圖片右下角新增文字浮水印「ServBay」:
bashmagick convert input.jpg -gravity southeast -draw "text 10,10 'ServBay'" output.jpg
1
cwebp
WebP 是 Google 開發的新世代圖像格式,主打符合現代網頁需求的高品質壓縮,優於 JPEG 與 PNG。cwebp
為官方提供之命令列工具,可將各種格式圖片轉為 WebP。
基本用法
將 JPEG 圖片轉為 WebP 格式
bashcwebp input.jpg -o output.webp
1將 PNG 圖片轉為 WebP 格式
bashcwebp input.png -o output.webp
1設定壓縮品質 使用
-q
參數調整輸出 WebP 壓縮品質(0-100),例如設定為 80:bashcwebp -q 80 input.jpg -o output.webp
1
jpegtran
jpegtran
是 libjpeg 函式庫中的實用工具,專注於對 JPEG 圖像進行無損轉換操作(如旋轉、翻轉、裁切等),非常適合優化或調整圖片方向且不損失品質。
基本用法
旋轉 JPEG 圖片 將 JPEG 圖片無損旋轉 90 度:
bashjpegtran -rotate 90 input.jpg > output.jpg
1注意:這裡使用重定向
>
將輸出寫入新檔案。水平翻轉 JPEG 圖片
bashjpegtran -flip horizontal input.jpg > output.jpg
1
djpeg
djpeg
是 libjpeg 函式庫的另一工具,將 JPEG 檔案解碼(解壓縮)為原始像素資料格式(例如 PPM/Portable Pixmap),便於進一步像素處理或轉換為非 JPEG 格式。
基本用法
- 將 JPEG 解壓縮為 PPM 格式bash
djpeg input.jpg > output.ppm
1
cjpeg
cjpeg
與 djpeg
相對,用於將原始像素資料(如 PPM)編碼(壓縮)為 JPEG 圖片。常搭配 djpeg 使用,也可將其他工具產生的原始圖片資料轉為 JPEG。
基本用法
- 將 PPM 壓縮回 JPEG 格式bash
cjpeg input.ppm > output.jpg
1
img2webp
img2webp
屬於 WebP 工具集,可將一系列靜態圖片(如 PNG、JPEG)合成動畫 WebP 格式類似 GIF 動畫。
基本用法
- 多張圖片合併為動畫 WebP 將
frame1.png
、frame2.png
、frame3.png
合併成一個動畫 WebP 檔案output.webp
:bashimg2webp -o output.webp frame1.png frame2.png frame3.png
1
實用案例與進階技巧
善用這些命令列工具,你可以自動化複雜的圖片處理任務。以下為實用範例:
批次調整圖片尺寸
利用 ImageMagick 結合 Shell 指令,輕鬆將目前目錄下所有 JPEG 圖片批量調整尺寸。舉例,全部調整為寬度 300 像素(高度自動等比例縮放):
# 進入存放圖片的資料夾,例如:cd /Applications/ServBay/www/your-project/images
for file in *.jpg; do
# 使用 magick convert 調整尺寸,-resize 300x 表示寬 300 像素,高度等比例
# 結果可直接覆蓋原檔,或指定新目錄/檔名避免覆寫
magick convert "$file" -resize 300x "${file%.*}-resized.jpg"
echo "Processed: $file -> ${file%.*}-resized.jpg"
done
2
3
4
5
6
7
8
提示:${file%.*}
是 Shell 參數展開,用來移除副檔名。
批次轉檔與優化
透過 cwebp
批量將目錄下所有以 servbay
開頭的 PNG 或 JPEG 圖片轉換成 WebP 格式,並設定壓縮品質為 45:
# 進入存放圖片資料夾
for file in servbay*.jpg servbay*.png; do
# 組合輸出檔名,把副檔名改為 .webp
output_file="${file%.*}.webp"
# 執行 cwebp 轉檔,-q 設定品質
cwebp -q 45 "$file" -o "$output_file"
echo "Converted: $file -> $output_file (Quality 45)"
done
2
3
4
5
6
7
8
批次新增浮水印
結合 ImageMagick 與 Shell 指令,替資料夾內所有 JPEG 圖片批量加上 ServBay 文字浮水印:
# 進入存放圖片資料夾
for file in *.jpg; do
# 右下角加上「ServBay Demo」文字浮水印
# 結果儲存為新檔案
magick convert "$file" -gravity southeast -pointsize 20 -fill white -annotate +10+10 'ServBay Demo' "${file%.*}-watermarked.jpg"
echo "Watermarked: $file -> ${file%.*}-watermarked.jpg"
done
2
3
4
5
6
7
優化 JPEG 圖片大小
利用 jpegtran
進行無損 JPEG 優化,移除不必要資訊並轉為漸進式 JPEG(進步式載入,優化網頁圖片體驗):
jpegtran -optimize -progressive input.jpg > output.jpg
注意:jpegtran
會輸出到標準輸出,建議用重定向寫入檔案。
注意事項
- PATH 環境變數: ServBay 會自動將內建工具路徑加入到系統 PATH,讓你能直接於終端執行如
magick
、cwebp
、jpegtran
等指令。若遇到找不到命令,請檢查 ServBay 是否正常運作,以及 PATH 設定是否正確。 - 錯誤處理: 命令列工具失敗時多會給出錯誤訊息。編寫批次處理指令時,建議加上錯誤檢查機制。
- 檔案覆寫: 多數命令列工具預設會覆蓋同名輸出檔。批次處理時務必小心,可優先將輸出存入新目錄或使用不同檔名,確認無誤後再覆蓋原始檔案。
常見問題解答 (FAQ)
Q: 終端機輸入 magick
顯示找不到指令怎麼辦?
A: 請確保 ServBay 的環境變數設置正確。若仍有問題,請進入 ServBay「設定」>「命令列工具」,針對 zsh
與 bash
分別設置,並重新開啟終端機。
Q: 這些工具可讀取那些圖片格式?
A: ImageMagick 支援數百種格式,包括 JPEG、PNG、GIF、TIFF、BMP、SVG 等。cwebp
專注於 WebP 格式轉換。jpegtran
、djpeg
、cjpeg
主要處理 JPEG 及相關格式。詳細支援清單請參閱各工具官方文件。
Q: 是否可在 PHP、Python 等程式中調用這些指令?
A: 可以。你可於 ServBay 環境中透過 PHP(如 exec()
、shell_exec()
、proc_open()
)、Python(subprocess
模組)、Node.js(child_process
模組)等腳本自動呼叫這些命令處理上傳圖片或完成額外任務。
總結
ServBay 作為一站式本機開發解決方案,透過內建 ImageMagick、cwebp、jpegtran 等各式頂尖圖片處理工具,極大簡化了開發者處理圖像資源的流程。無須另行安裝或設置,便能輕鬆完成格式轉換、壓縮、優化與自動化批次處理等工作。熟練運用這些工具,將大幅提升你在 Web 開發專案中圖片處理的效率與彈性。立即在 ServBay 環境探索這些工具的強大功能吧!