设为首页 收藏本站
查看: 1202|回复: 0

[经验分享] centos7使用imagemagick的convert命令压缩图片脚本

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-27 10:46:53 | 显示全部楼层 |阅读模式
                      yum install imagemagick
vi imagemagick
#!/bin/bash
#author:king
#time:20160725
#找出当前目录下大于20K的图片按照宽200,高随图片样式等比缩放,图片名称不变
find ./ -regex '.*\(jpg\|JPG\|png\|PNG\|jpeg\)' -size +20k -exec convert -resize 200x {} {} \;

参考:
本人管的一台阿里云服务器由于空间的带宽才只有1MB,图片一多,网站打开就慢,真是蛋疼啊,在不增加带宽的情况只有通过系统让图片更小,这样可以加快速度了,真是人穷就没办法啊。而且压缩图片还可以节省服务器空间,相必也是极好极好的。
安装imagemagick
1
yum install imagemagick
imagemagick的命令convert可以完成此任务,其参数-resize用来改变图片尺寸,可以直接指定像素值,也可以指定缩放百分比。而如果想降低图片的质量,可以用convert的-quality参数,质量值为0-100之间的数值,数字越大,质量越好,一般指定70-80,基本上看不出前后的差别。
我们首先要获取图片,自然find命令:
find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +500k

统计下数量可对:
find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +500k | wc -l

执行convert 压缩:
find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +500k -exec convert -resize 50%x50% {} {} \;

或者限定大小:
find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +500k -exec convert -resize 800x800 {} {} \;
convert 是会自动按照最大尺寸等比例进行缩小的。
用规则表达式把jpg和JPG后缀图片一网打尽,{}代表查找到的文件,这里没有改变convert前后的文件名,最后是转义的分号表示一个迭代的处理完成。

缩小图片质量为50:
convert -resize 800x800 -quality 50 1405407568-633.jpg 800.jpg
整合下命令我就不说了,呵呵。。。
加上shell脚本每天定时操作,哈哈,爽 的一塌糊涂。


追加配置:
先实现centos7本机目录同步,再对该目录下所有图片进行裁剪,然后写入crontab每秒运行,测试之后发现删除不能实现同步
vi copy.sh
rsync -vzrtopgu –progress /opt/jetty-fileserver/work/jetty-0.0.0.0-8080-fileServer.war-_fileServer-any-/webapp/uploads/ /opt/jetty-fileserver/work/jetty-0.0.0.0-8080-fileServer.war-_fileServer-any-/webapp/min/uploads

vi imagemagick

#!/bin/bash
find /opt/jetty-fileserver/work/jetty-0.0.0.0-8080-fileServer.war-_fileServer-any-/webapp/min/uploads/ -regex '.*\(jpg\|JPG\|png\|PNG\|jpeg\)' -size +20k -exec convert -resize 200x {} {} \;

crontab -e
* * * * * sleep 1; /opt/copy.sh
* * * * * sleep 3; /opt/imagemagick
                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-250180-1-1.html 上篇帖子: iptables/netfilter详解 下篇帖子: Linux中的history命令 convert 图片
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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