Linux系统下 批量压缩图片尺寸大小的方法
现在手机用户非常庞大,针对手机用户的流量不得不考虑,但手机网络带宽较小,怎么将互联网上的图片压缩是个难题,在windows上容易,有很多软件,但在linux上有没有办法呢?经过多次的寻找,还是找到了些方法,这里分享下:一个比较好用命令行下可以使用的 强大的免费图片工具 ImageMagickCentos系统的安装使用方法:yum install ImageMagick
再输入y确认即可安装完成
接下来调用 系统命令#include <stdio.h>int main(){printf(“Please install ImageMagick before run this programme ,else it will not run correctlyn”);system(“mkdir small”);system(“cp *.jpg ./small”);system(“find ./small -name ‘*.jpg’ -exec convert -resize 300×300 {} {} ;”);system(“pwd”);system(“rename .jpg _small.jpg small/*.jpg”);printf(“nConvert pictures finished,plesae check itn”);return 0;}
其中上面 convert 中的 resize 参数可以修改imagemagick,它可以对图片进行格式转换、大小压缩、增加水印等操作,而不需要去写第三方的程序,只需要写简单的SHELL脚本就可以完成图片压缩操作,接下来UBUNTU上介绍下{转载}:安装命令:sudo apt-get install imagemagick
其它linux有对应的软件安装命令,以下有我写的两个脚本,分别对图片进行批量格式以及压缩操作:
图片格式转换,这里的示例是将[bB][mM][pP](所有BMP文件)格式的文件,转换为占空间小的jpg文件:
[c-sharp] view plaincopy
#!/bin/shfor img in `find ./ -name “*.[bB][mM][pP]“`; do#change upper filename to lower_imglower=`echo $img|tr “[:upper:]” “[:lower:]“`;#get file’s basename_basename=`basename $_imglower .bmp`;#get file’s dir_dirname=`dirname $img`;#get desc filename with path_basefullname=$_dirname”/”$_basename”.jpg”;#do convertconvert $img $_basefullname;#remove bmp filerm $img;echo “deal $_basefullname successfully”;done
图片压缩脚本:
[c-sharp] view plaincopy
for img in `find ./ -name “*.[jJ][pP][gG]“`; doconvert -resize 85%*85% $img $img-resized;rm $img;mv $img-resized $imgecho $imgdonefor img in `find ./ -name “*.[pP][nN][gG]“`; doconvert -resize 85%*85% $img $img-resized;rm $img;mv $img-resized $imgecho $imgdonefor img in `find ./ -name “*.[gG][iI][fF]“`; doconvert -resize 85%*85% $img $img-resized;rm $img;mv $img-resized $imgecho $imgdone
新闻热点
疑难解答