当前位置 博文首页 > shell 批量压缩指定目录及子目录内图片的方法

    shell 批量压缩指定目录及子目录内图片的方法

    作者:admin 时间:2021-06-21 18:30

    用户上传的图片,一般都没有经过压缩,造成空间浪费。因此需要编写一个程序,查找目录及子目录的图片文件(jpg,gif,png),将大于某值的图片进行压缩处理。

    代码如下:

    #!/bin/bash
    
    # 查找目录及子目录的图片文件(jpg,gif,png),将大于某值的图片进行压缩处理
    
    # Config
    
    folderPath='/home/fdipzone/photo'  # 图片目录路径
    
    maxSize='1M'  # 图片尺寸允许值
    maxWidth=1280  # 图片最大宽度
    maxHeight=1280 # 图片最大高度
    quality=85   # 图片质量
    
    
    # 压缩处理
    # Param $folderPath 图片目录
    function compress(){
    
      folderPath=$1
    
      if [ -d "$folderPath" ]; then
    
        for file in $(find "$folderPath" \( -name "*.jpg" -or -name "*.gif" -or -name "*.png" \) -type f -size +"$maxSize" ); do
    
          echo $file
    
          # 调用imagemagick resize图片
          $(convert -resize "$maxWidth"x"$maxHeight" "$file" -quality "$quality" -colorspace sRGB "$file")
    
        done
    
      else
        echo "$folderPath not exists"
      fi
    }
    
    # 执行compress
    compress "$folderPath"
    
    exit 0
    

    以上这篇shell 批量压缩指定目录及子目录内图片的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持站长博客。

    js
    下一篇:没有了