本人管的一台阿里云服务器由于空间的带宽才只有1MB,图片一多,网站打开就慢,在不增加带宽的情况只有通过系统让图片更小,这样可以加快速度了。而且压缩图片还可以节省服务器空间。
imagemagick的命令convert可以完成此任务,其参数-resize用来改变图片尺寸,可以直接指定像素值,也可以指定缩放百分比。而如果想降低图片的质量,可以用convert的-quality参数,质量值为0-100之间的数值,数字越大,质量越好,一般指定70-80,基本上看不出前后的差别。
1、获取500k以上图片,find命令:
find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +500k2、统计500k以上图片数量:find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +500k注释:[500k 可以想改成你想要改的大小 ./是当前文件夹]3、执行convert 压缩
1.压缩成具体比例
find ./ -regex '.*\(jpg\|JPG\|png\|jpeg\)' -size +500k -exec convert -resize 50%x50% {} {} \;2.压缩成具体大小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 定时任务去执行 这样就会按照你的定时规则自动去执行了。[定时任务我采用的是: linux的crontab定时任务 ] 这个懒得写了 实在不会的话给我留言 我教你。最佳答案