全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 3650|回复: 11
打印 上一主题 下一主题

图像批量压缩SHELL脚本

[复制链接]
跳转到指定楼层
1#
发表于 2011-11-27 12:06:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个朋友的站有很多图片,需要帮忙压缩,于是花了一个小时构思了这个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 编辑 ]

评分

参与人数 1威望 +15 收起 理由
joyanhui + 15 很给力!

查看全部评分

2#
发表于 2011-11-27 12:09:47 | 只看该作者
出售此楼层。。。





[ 本帖最后由 0x59 于 2011-11-27 12:24 编辑 ]

评分

参与人数 1威望 +1 收起 理由
晨曦初露 + 1 没人要的。。

查看全部评分

3#
发表于 2011-11-27 12:10:05 | 只看该作者
这个命令   convert   是哪个程序的

[ 本帖最后由 tobeychan 于 2011-11-27 12:39 编辑 ]
4#
发表于 2011-11-27 12:15:19 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
5#
发表于 2011-11-27 12:18:56 | 只看该作者
不错哦。
6#
发表于 2011-11-27 13:00:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
7#
发表于 2011-11-27 13:03:46 | 只看该作者
不错哦。
8#
发表于 2011-11-27 13:05:19 | 只看该作者
  跟cmd 不一样哦
9#
发表于 2011-11-27 13:11:23 | 只看该作者
用find+exec,只需要一行.....
10#
 楼主| 发表于 2011-11-27 13:12:59 | 只看该作者
原帖由 Kokgog 于 2011-11-27 13:11 发表
用find+exec,只需要一行.....

知道,我对SHELL不是特别熟悉,So没办法,你看我那个啥的IF都写的那么烂就知道我对SHELL不了解了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-4 11:25 , Processed in 0.068042 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表