centos中ImageMagick命令安装与使用方法

作者:袖梨 2022-06-30

先来介绍一下 ImageMagick。

ImageMagick(简称 IM)是一个支持 GPL 协议的开源免费软件包。
它由一组命令行工具组成的。
它可以对超过 100 种的图像格式(包括 DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, 和 TIFF等等),进行读、写、编辑和转换的操作。
它支持多数主流操作系统,其中包括 UNIX、Mac OS X 和 Windows。

IM 的主页是 http://www.imagemagick.org/ 。你可以在那里下载它的源代码或可执行文件。
一般人可以直接下载它的 Windows 发行版。地址是:http://www.imagemagick.org/script/binary-releases.php#windows 。

有 6 种格式可供选择,如果你不清楚自己要什么,我建议你下载 Q16 的 static 版。

先来看看 ImageMagick 能做些什么:

1、批量旋转、分割,并顺序编号

2、自动批量切除白边(auto-crop)


安装Imagemagick

首先要安装Imagemagick

CentOS上安装

yum install ImageMagick -y

Debian上安装

apt-get install ImageMagick -y

3、自动倾斜校正(deskew)

4、批量加标注

5、批量去标注

6、批量加水印

7、批量去水印

 

Imagemagick批量压缩图片形成缩略图

首先得安装ImageMagick,linux中批量缩小图片的这个工具超级强大


批量缩放图片到指定尺寸的命令:

for img in `ls *.jpg` ; do  convert -sample 25%x25% $img thumb-$img ; done
#这个命令是批量缩小25%
可以只指定宽度或者高度等比缩放
例如只指定宽度等比缩放的命令:

# for img in `ls *.jpg` ; do  convert -sample 200 $img thumb-$img ; done
或者只指定高度等比缩放:

# for img in `ls *.jpg` ; do  convert -sample x200 $img thumb-$img ; done
为当前目录的所有图像生成缩略图

for img in `ls*.jpg` do convert -sample 25%x25% $img thumb-$img done
批量缩小根目录文件夹中的图片, 如果宽度大于900px就缩小,否则不动:

for img in `ls */*.jpg` ; do convert -resize "900 >" $img $img ; done

注: -resize 是缩小,-sample 是压缩
注意:为保险起见,压缩图片前可以先拷贝备份一下,安然再压缩就可以了: 例如

cp -rf upload/* upload2/


Imagemagick 批量缩小图片并打水印

IM 有好几种缩放图像的方法,在这里我只讲最基本的 resize 命令。

批处理脚本

#!/bin/bash
for each in /要处理的图片文件夹/*{.jpg,.gif}
do
s=`du -k $each | awk '{print $1}'`
if [ $s -gt 10 ]; then
convert -quality 80 -resize 600x800 $each $each
composite -gravity southeast -dissolve 80 /水印文件夹/mark.jpg $each $each 2>/dev/null
echo "$each: done!"
fi
done
exit 0

本脚本产生的新图片会覆盖原来的

convert -quality 80 -resize 600x800 $each $each
这个是进行图片缩小的 -quality 80代表图片质量,600x800是图片的大小600宽X800高,全部产生的图片大小都在600X800范围内。

composite -gravity southeast -dissolve 80 /水印文件夹/mark.jpg $each $each 2>/dev/null
这句是加图片水印的,文字水印的没写.-gravity southeast这个决定图片水印的位置south就是南east就是东也就是图片的右下角-dissolve 80这个是设置水印的透明度的.越小越透明.

$s -gt 10
这个是忽略小于10K的文件.防止给缩略图加上水印.

如果你保存的脚本名为water.sh 执行脚本

sh ./water.sh

相关文章

精彩推荐