linux 下图片压缩shell脚本

 
需要扩展库:imagemagick convert
 
功能:
 

# 查找目录及子目录的图片文件(jpg),将大于maxSize的图片进行压缩处理。

#-fuzz 12% 设置压缩比,经测试12%正好,fuzz值越大压缩比越大。
 
脚本如下:
 
#!/bin/bash

# 查找目录及子目录的图片文件(jpg,gif,png),将大于某值的图片进行压缩处理

# Config
#folderPath='/data/webdata/upload/'$(date +%Y/%m/%d) # 图片目录路径
maxSize='300k' # 图片尺寸允许值
maxWidth=1280 # 图片最大宽度
maxHeight=1280 # 图片最大高度
quality=85 # 图片质量


# 压缩处理
# Param $folderPath 图片目录
function compress(){

folderPath=$1

if [ -d "$folderPath" ]; then

for file in $(find "$folderPath" \( -name "*.jpg" \) -type f -size +"$maxSize" ); do

echo $file

# 调用imagemagick resize图片
#convert {} -fuzz 12% -layers Optimize {}.gif -exec
#$(convert -resize "$maxWidth"x"$maxHeight" "$file" -quality "$quality" -colorspace sRGB "$file")
$(convert "$file" -fuzz 12% -layers Optimize "$file".'gif')
$(rm -rf "$file")
$(mv "$file".'gif' "$file")


done

else
echo "$folderPath not exists"
fi
}

# 执行compress
compress "$folderPath"

exit 0

配合定时任务,实现每日定时压缩网站上传的图片:
 
crontab -e

30 23 * * * /root/img.sh
#每天23:30执行压缩图片shell

0 个评论

要回复文章请先登录注册