全球主机交流论坛

标题: 图像批量压缩SHELL脚本 [打印本页]

作者: shy9000    时间: 2011-11-27 12:06
标题: 图像批量压缩SHELL脚本
一个朋友的站有很多图片,需要帮忙压缩,于是花了一个小时构思了这个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. #! /bin/Bash
  2. let Limit=350*1024
  3. Quality=70
  4. DIR="/root"
  5. cd $DIR
  6. for i in `find $DIR -name "*.???"`
  7. do
  8.         FSIZE=`wc -c $i|awk '{print $1}'`
  9.         EXT=${i##*.}
  10.         if [ $FSIZE -ge $Limit ] && [ "$EXT" == "jpg" ] || [ "$EXT" == "JPG" ] || [ "$EXT" == "png" ] || [ "$EXT" == "PNG" ] || [ "$EXT" == "bmp" ] || [ "$EXT" == "BMP" ]; then
  11.                 convert -resize 800x600 -quality $Quality $i $i
  12.                 echo $i is Okay.
  13.         fi
  14. done
复制代码
里面的纵横的最大取值800*600,如果遇到超过的话,会自动按比例缩小到约束值

[ 本帖最后由 shy9000 于 2011-11-27 13:03 编辑 ]
作者: 0x59    时间: 2011-11-27 12:09
出售此楼层。。。





[ 本帖最后由 0x59 于 2011-11-27 12:24 编辑 ]
作者: tobeychan    时间: 2011-11-27 12:10
这个命令   convert   是哪个程序的

[ 本帖最后由 tobeychan 于 2011-11-27 12:39 编辑 ]
作者: 490775    时间: 2011-11-27 12:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: mapleaf    时间: 2011-11-27 12:18
不错哦。
作者: caboo    时间: 2011-11-27 13:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: UCVPS    时间: 2011-11-27 13:03
不错哦。
作者: maksim    时间: 2011-11-27 13:05
  跟cmd 不一样哦
作者: Kokgog    时间: 2011-11-27 13:11
用find+exec,只需要一行.....
作者: shy9000    时间: 2011-11-27 13:12
原帖由 Kokgog 于 2011-11-27 13:11 发表
用find+exec,只需要一行.....

知道,我对SHELL不是特别熟悉,So没办法,你看我那个啥的IF都写的那么烂就知道我对SHELL不了解了
作者: madebi    时间: 2011-11-27 16:00
这类帖子要顶要顶
作者: yu.gs尊    时间: 2011-11-27 16:20
吴哈哈




欢迎光临 全球主机交流论坛 (https://91ai.net/) Powered by Discuz! X3.4