图片格式批量转换,批量处理

转载:http://blog.sina.com.cn/s/blog_ba532aea0101bty5.html

你当然可以用 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。

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 文件,诸如此类。

再回到刚才的命令:
    mogrify -path newdir -format png  *.gif
这里的 -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 目录中。

请注意,如果没有 -path 语句,新生成的 png 文件将会覆盖原始文件。因此,在使用 mogrify 命令时,-path 参数几乎是必须的。

另外,我们也可以注意到 mogrify 和 convert 的命令其实基本上是通用的。通常我们可以先用 convert 修改单个文件,对结果满意的话再用 mogrify 进行批量处理。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值