|
一个朋友的站有很多图片,需要帮忙压缩,于是花了一个小时构思了这个SHELL,在此分享(IF那段我写的很烂,因为我不熟悉SHELL的IF的OR用法,只能分别拆开写了,换到PHP的话只用一个in_array就清爽多了,懂得兄弟希望能够帮忙指正)
Limit后面是限制的字节数,只有大于该字节才会进行处理
Quality是图像质量,取值0-100左开右闭区间,范围是正整数
DIR是要压缩的图片目录
使用该脚本之前请先安装ImageMagick,以便能够正常使用[ol]yum -y install ImageMagickyum -y install ImageMagick[/ol]复制代码使用方法,把下面的代码保存成xxxx.sh,然后执行sh xxxx.sh[ol]#! /bin/Bashlet Limit=350*1024Quality=70DIR="/root"cd $DIRfor 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. fidone[/ol]复制代码里面的纵横的最大取值800*600,如果遇到超过的话,会自动按比例缩小到约束值
[ 本帖最后由 shy9000 于 2011-11-27 13:03 编辑 ] |
|