macOS - 批量处理图片

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容