跳到主要內容

發表文章

目前顯示的是 11月, 2025的文章

利用 Shell 腳本與 AI 工具高效批次處理大量相片

面對大量相片時,傳統手動整理、命名與修復既辛苦又耗時。透過兩支自動化 Shell 腳本與 AI 工具 CodeFormer,可以實現相片批次命名、縮圖、AI 修復、格式轉換與備份的一條龍作業,極大提升效率。 工作流程詳述 1. 匯入相片並命名資料夾 將拍攝好的相片傳入任意資料夾,並將該資料夾命名為「拍攝日期_分類+事件描述」,例如: 20251104_旅遊_阿里山 方便追蹤跟管理。 2. 自動命名相片(photorename2.sh) 運行 photorename2.sh ,依據相片的 EXIF 資訊自動讀取拍攝時間(Image Created)和相機型號(Camera Model),再依照格式: 時分_相機型號_序號.副檔名 自動重命名相片檔案,例如: 1030_Canon_001.jpg 若照片缺少拍攝時間則用檔案的修改時間代替。命名後的檔案方便辨識該張照片的基本資訊。 3. 縮圖並 AI 修復(aiphoto2.sh) 運行 aiphoto2.sh ,它會先呼叫 photorename2.sh 進行命名,再將照片依「最長邊1920像素」限制縮放,並呼叫 CodeFormer 進行人像修復、背景優化及彩色化等處理。 最後會將修復完的照片轉為 4K 解析度 JPG,90%壓縮率,以兼顧畫質與檔案大小。修復後會搬回原始資料夾並依「拍攝日期_分類+事件描述_時分_相機型號_序號」命名。 4. 原始相片壓縮保存 原始相片會集中移到一個子資料夾並壓縮打包,確保有完整原始備份且不占用過多空間。 5. 靈活使用 由於 CodeFormer AI 修復需要較多資源與時間,若不需精細處理,只執行 photorename2.sh 即可快速完成命名及匯整,保持 EXIF 資訊完整。 腳本內容詳列 photorename2.sh — 自動依拍攝時間、相機型號重新命名 #!/bin/bash count=1 shopt -s nullglob files=(*.jpg *.JPG *.jpeg *.JPEG *.png *.PNG *.tif *.TIF *.tiff *.TIFF) for file in "${files[@]}"; do # 取得 Camera Model model=$(...