大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Linux系统下怎么批量压缩图片尺寸大小

本篇内容介绍了“Linux系统下怎么批量压缩图片尺寸大小”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

成都创新互联公司2013年至今,是专业互联网技术服务公司,拥有项目做网站、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元马鞍山做网站,已为上家服务,为马鞍山各地企业和个人服务,联系电话:028-86922220



Centos系统的安装使用方法:
yum install ImageMagick

再输入y确认即可安装完成

接下来调用 系统命令

代码如下:


#include
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文件:

代码如下:


#!/bin/sh
for 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 convert
convert $img $_basefullname;
#remove bmp file
rm $img;
echo “deal $_basefullname successfully”;
done


图片压缩脚本:

代码如下:


for img in `find ./ -name “*.[jJ][pP][gG]“`; do
convert -resize 85%*85% $img $img-resized;
rm $img;
mv $img-resized $img
echo $img
done
for img in `find ./ -name “*.[pP][nN][gG]“`; do
convert -resize 85%*85% $img $img-resized;
rm $img;
mv $img-resized $img
echo $img
done
for img in `find ./ -name “*.[gG][iI][fF]“`; do
convert -resize 85%*85% $img $img-resized;
rm $img;
mv $img-resized $img
echo $img
done

“Linux系统下怎么批量压缩图片尺寸大小”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


本文标题:Linux系统下怎么批量压缩图片尺寸大小
标题URL:http://dzwzjz.com/article/pccigi.html
在线咨询
服务热线
服务热线:028-86922220
TOP