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