图像批量压缩SHELL脚本
2011年11月27日
一个朋友的站有很多图片,需要帮忙压缩,于是花了一个小时构思了这个SHELL,在此分享(IF那段我写的很烂,因为我不熟悉SHELL的IF的OR用法,只能分别拆开写了,换到PHP的话只用一个in_array就清爽多了,懂得兄弟希望能够帮忙指正)
Limit后面是限制的字节数,只有大于该字节才会进行处理
Quality是图像质量,取值0-100左开右闭区间,范围是正整数
DIR是要压缩的图片目录
使用该脚本之前请先安装ImageMagick,以便能够正常使用
1 |
yum -y install ImageMagickyum -y install ImageMagick |
使用方法,把下面的代码保存成xxxx.sh,然后执行sh xxxx.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#! /bin/Bash let Limit=350*1024 Quality=70 DIR="/root" cd $DIR for i in `find $DIR -name "*.???"` do FSIZE=`wc -c $i|awk '{print $1}'` EXT=${i##*.} if [ $FSIZE -ge $Limit ] && [ "$EXT" == "jpg" ] || [ "$EXT" == "JPG" ] || [ "$EXT" == "png" ] || [ "$EXT" == "PNG" ] || [ "$EXT" == "bmp" ] || [ "$EXT" == "BMP" ]; then convert -resize 800x600 -quality $Quality $i $i echo $i is Okay. fi done |
里面的纵横的最大取值800*600,如果遇到超过的话,会自动按比例缩小到约束值
声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: 图像批量压缩SHELL脚本