mac 命令行批量处理照片

近日处理了一批照片,现在分享一下如何在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扩展,可以在项目中引入相关功能。

推荐阅读更多精彩内容