macOS 使用 sips
命令批量处理图片
sips 命令
# 格式转换 jpg -> png
sips -s format png "a.jpg" --out "a.png"
# 格式转换 png -> jpg
sips -s format jpeg "a.png" --out "a.jpg"
# 修改图片尺寸
sips -z ${高} ${宽} ${图片路径} --out ${图片输出路径}
# 获取图片宽高
sips -g pixelHeight -g pixelWidth ${pic}
# 获取宽度值
sips -g pixelWidth $f | awk -F: '{print $2}'
# 如果需要按比例修改图片尺寸 [$2*2 是2倍]
sips -g pixelWidth $f | awk -F: '{printf("%d", $2*3)}'
# 获取高度值 高度同理
sips -g pixelHeight $f | awk -F: '{printf("%d", $2*3)}'
文件相关命令
# 列出当前目录的所有jpg文件
ls "*.jpg"
# 查找列出当前目录下所有png图片(包含子目录)
find . -name "*.png";
# 查找并删除文件
find . -name "*.png" -delete
# 输出当前目录所有jpg图片
for f in `ls "*.jpg"`;do echo "$f"; done
# 输出所有png图片高度和宽度
for f in `find . -name "*.png"`; do echo "$f"; echo `sips -g pixelHeight $f | awk -F: '{printf("%d", $2)}'` `sips -g pixelWidth $f | awk -F: '{printf("%d", $2)}'`; done
格式转换
# 只转换当前目录内的图片
for f in `ls *.jpg`;do sips -s format png "$f" --out "${f%.*}.png"; echo "${f%.*}.png"; done
# 转换当前目录下所有png图片(包含子目录,目录结构不变)
for f in `find . -name "*.png"`; do sips -s format jpeg "$f" --out "${f%.*}.jpg"; echo "${f%.*}.jpg"; done
批量修改尺寸 (放大2倍)
for f in `find . -name "*.png"`;
do sips -z `sips -g pixelHeight $f | awk -F: '{printf("%d", $2*2)}'` `sips -g pixelWidth $f | awk -F: '{printf("%d", $2*2)}'` "$f" --out "$f"; echo "ok";
done