美文网首页
macOS - 批量处理图片

macOS - 批量处理图片

作者: 简了个书1993 | 来源:发表于2018-07-22 13:37 被阅读43次

    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
    

    相关文章

      网友评论

          本文标题:macOS - 批量处理图片

          本文链接:https://www.haomeiwen.com/subject/zemlmftx.html