可以用 PhotoShop 或 GIMP 这样的软件来处理图像。没人禁止你这么做,就像没人禁止你用大炮打蚊子一样。不过依我看,打蚊子最好还是用电蚊拍,而要处理大量图像的话,我推荐 ImageMagick。
先来介绍一下 ImageMagick。
ImageMagick(简称 IM)是一个支持 GPL 协议的开源免费软件包。
它由一组命令行工具组成的。
它可以对超过 100 种的图像格式(包括 DPX,EXR,GIF,JPEG,JPEG-2000,PDF,PhotoCD,PNG,Postscript,SVG,和 TIFF等等),进行读、写、编辑和转换的操作。
它支持多数主流操作系统,其中包括 UNIX、Mac OS X 和 Windows。
在ubuntu16.04里面是自带的
IM 的主页是 http://www.imagemagick.org/ 。你可以在那里下载它的源代码或可执行文件。
一般人可以直接下载它的 Windows 发行版。地址是:http://www.imagemagick.org/script/binary-releases.PHP#windows 。
有 6 种格式可供选择,如果你不清楚自己要什么,我建议你下载 Q16 的 static 版。
先来看看 ImageMagick 能做些什么:
1、批量旋转、分割,并顺序编号
2、自动批量切除白边(auto-crop)
3、自动倾斜校正(deskew)
4、批量加标注
5、批量去标注
6、批量加水印
7、批量去水印
一、最基本的格式转换
下面,我将结合与扫书制书有关的图像操作,来说明 IM 的用法。
前面已经说过,IM 由一组命令行工具组成,具体来说也就是 convert、mogrify、composite、montage、identify、compare、display、animate、stream、import 和 conjure,这 11 个命令。
其中最常用的,是 convert 和 mogrify。
1、将 a.gif 转为 png 格式
convert a.gif a.png
请注意,convert 命令的基本格式为
convert 源文件 [参数] 目标文件
在上面的命令中,源文件是 a.gif,目标文件是 a.png。由于这是最简单的格式转换,所以不需要中间的参数。
convert 常用于单个文件的转换。上面的命令是它最基本的用法。
前面说过 IM 支持超过 100 种的文件格式。
下面的命令,可以列出 IM 所支持的所有格式:
identify -list format
2、批量文件的格式转换
mogrify -path newdir -format png *.gif
这个命令的作用,是将当前目录下的所有 gif 文件,转换为 png 格式,并将其存放在 newdir 目录下。
mogrify 是用于批量处理文件的命令。它的基本格式是这样的:
mogrify 参数 源文件
mogrify 支持基本的通配符,例如你可以用 a*.png 指代所有以 a 打头的 png 文件,诸如此类。
再回到刚才的命令:
这里的 -path 和 -format 是两个可选择的参数。
-format 指定输出的文件格式,而 -path 则指定输出的文件目录。
我在这里先强调一下:如果不加 -path 参数的话,mogrify 有可能会覆盖你的源文件,因此强烈推荐在每个 mogrify 命令里都加上 -path 参数,并在执行之前,先检查整个命令正确性。
二、图像的缩放:使用 -resize
IM 有好几种缩放图像的方法,在这里我只讲最基本的 resize 命令。
将一个200x304大小的图像缩小为100x152(长宽各缩短一半)。
convert page200.png -resize 100x152 page100.png
上面的 100x152,指定了目标文件的长和宽。
你也可以只指定目标文件宽度,这样它的高度会等比例放大:
convert page200.png -resize 100 page100.png
或者只指定高度:
convert page200.png -resize x152 page100.png
以上三句命令,其结果都是一样的。
你可以用 identify 命令来显示图像的尺寸以及其它一些信息:
identify page100.png
其结果为:
page100.png PNG 100x152 100x152+0+0 8-bit DirectClass 17.9kb
最后,你还可以通过指定百分比来缩放图像:
convert page200.png -resize 50% page100.png
convert page200.png -resize 150% page300.png
批量缩放图像
mogrify -path newdir -resize 200% *.png
这句命令的意思是将当前目录中所有的 png 文件都放大一倍,并存放到 newdir 目录中。
@H_301_134@
请注意,如果没有 -path 语句,新生成的 png 文件将会覆盖原始文件。因此,在使用 mogrify 命令时,-path 参数几乎是必须的。