Linux中imagemagick图片批量压缩例子linux操作系统 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    这里要使用到强大的图片处理工具:imagemagick,它可以对图片进行格式转换、大小压缩、增加水印等操作,而不需要去写第三方的程序,只需要写简单的SHELL脚本就可以完成图片压缩操作,我的操作环境是UBUNTU,在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

   

    方法2 :

    首先要安装一个imagemagick,执行

代码如下复制代码$sudo apt-get install imagemagick

    命令总体,其实就是查询目录下所有的文件,然后执行相关的命令,我之前有一个博文讲的是批量重命名文件的,命令格式差不多

    可以参考一下:

    方法一:

代码如下复制代码for file in *.JPG; do mv $file `echo $file | sed -e s/[.]JPG/.jpg/g`; done

   

    扩展名是.JPG的命名为小写的jpg扩展名

    方法二:

代码如下复制代码for filename in *.JPG ; do mv $filename ${filename/JPG/jpg}; done

   

    这是另外一种替换

    方法三:

代码如下复制代码for file in *; do mv $file `echo $file | awk -F . '{print $1"."tolower($2)}' `; done

   

    这种能够实现同时修改多种扩展名,不过只能支持 文件名包含多个(.)的情况

代码如下复制代码

    $for img in `find ./ -name "*.JPG"`; do convert -quality 70 $img ${img/JPG/jpg}; done

    一句话搞定,把图片的质量压缩到原来的70%的程度,画质在电脑上看基本不会有差异,用来批量压缩图片,上传图片到网上最方便了,

Linux中imagemagick图片批量压缩例子linux操作系统

电脑资料

Linux中imagemagick图片批量压缩例子linux操作系统》(https://www.unjs.com)。

    convert 是imagemagick软件包中的一部分,-quality表示压缩质量。

    $img是原文件名,把原文件名的扩展名改为小写作为压缩后的文件名(${img/JPG/jpg})

最新文章