mac 命令列批量處理照片

weixin_33912445發表於2016-11-13

近日處理了一批照片,現在分享一下如何在mac平臺進行圖片批量處理。

處理的目標

  • 尺寸壓縮
  • 檔案大小壓縮

準備

  • brew up
  • brew install imagemagick
  • brew install jpegoptim

工具介紹

  • imagemagick
    修改圖片尺寸, 使用示例:
    • 圖片尺寸修改為原圖的85%

convert -resize 85%x85% $img $img-resized;

  • 限定寬度和高度

convert -resize 1024x800 $img $img-resized;

  • 指定寬度,高度自適應

convert -resize 1024x $img $img-resized;

  • jpegoptim
    優化圖片質量,減小圖片所佔硬碟空間,使用示例:
    • 優化圖片所佔硬碟空間 (直接修改原圖)
      jpegoptim --size=400 $img

** --size=400 儘量不影響圖片質量,將檔案壓縮為400kb左右 **
--max=80 圖片質量80%

批量處理指令碼 (儲存檔案為photo.sh)

    PHOTODIR=$1
    PHOTOFORMAT=$2

    IFS_OLD=$IFS # 先儲存 IFS 變數
    IFS=$'\n' # 將 IFS 改為換行符

    if [ ! -d "$PHOTODIR"/new ]; then
        mkdir "$PHOTODIR"/new
    fi

    cd $PHOTODIR;

    for img in `find ./ -name "*.$PHOTOFORMAT"`; do 
        convert -resize 1200x $img new/$img;
        jpegoptim --max=95 new/$img
    done
    IFS=IFS_OLD

** 可根據實際情況適當修改convert,jpegoptim命令的引數 **

使用

用法:sh photo.sh {圖片目錄位置} {圖片字尾}
示例:sh photo.sh photo/成品 jpg

輸出目錄

photp/成品/new

效果:

一共72張照片,處理之前600M+,處理之後20M左右

以上的工具都有相應的php擴充套件,可以在專案中引入相關功能。

相關文章