图片批量修改利器 - ImageMagick

仅仅用于软件推荐,不适合发求软件或软件使用问题方面的贴子
回复
THINKERCN
帖子: 79
注册时间: 2008-10-21 11:17

图片批量修改利器 - ImageMagick

#1

帖子 THINKERCN » 2010-05-29 19:32

直接从我的博客粘过来的,没有重新排版字体和颜色。
博客里可能看的更舒服一些,http://blog.liyucnx.com/read.php?40

  如果你想做以下这些事情,你会怎么办。
   1. 修改图片格式
   2. 修改图片大小
   3. 给图片加文字
   4. …………
  很简单,是吧,Adobe Photoshop、GIMP。或者,杀鸡焉用牛刀,ACDSee、系统自带的小的改图软件就可以胜任。

  那么,在加上几个条件,图片有很多,不在同一层目录下,文件类型也不同,要求改为统一大小,同一类型,并且在同一位置处加上文字。100张500K左右的图片的话,多长时间可以完成这个任务。不到一分钟,你相信吗?

  下面,就是我们神奇的主角之一—— ImageMagick,以上介绍的只是它众多功能的一小部分,而且是子功能convert中的一小部分。
  首先,介绍一下这位主角ImageMagick。

  ImageMagick是一个用于创建、编辑以及显示位图文件的自由软件套装。它可以读取、转换和编辑多种种图象格式(大约100种,其中包括 GIF,JPEG,JPEG-2000,PNG,PDF,PhotoCD,TIFF,和DPX)。 请参考ImageMagick支持的格式列表(http://www.imagemagick.org/script/formats.php)。

  ImageMagick主要由大量的命令行程序组成,而不提供像Adobe Photoshop、GIMP之类的图形界面。
  很多程序使用 ImageMagick创建缩略图,如小型论坛平台phpBB。

  下面,我对ImageMagick套件中convert命令的一些主要功能做一简单介绍。

   ●格式转化
    比如把 001.jpg 转化为 001.png:
    convert 001.jpg 001.png

    convert还可以把多张照片转化成pdf格式:
    convert *.jpg 001.pdf

   ●大小缩放
    比如把 001.jpg 的大小改为 100 X 100:
    convert -resize 100x100 001.jpg 002.jpg

    改进版本,保证小于100 X 100的图片不会被放大:
    convert -resize ”100x100>“ 001.jpg 002.jpg

    你也可以用百分比,这样显的更为直观:
    convert -resize 50%x50% 001.jpg 002.jpg

    convert 会考虑图像的高宽比例,也就是说着新的图像的高宽比与原图相同。

   ●在图片上加文字
    比如在距离图片的左上角 600x600的位置,用蓝色的字写下Hello World!,如果你要指定字体,可以用-font参数。
    convert -fill blue -pointsize 40 -draw 'text 600,600 "Hello World!"' 001.jpg 002.jpg

   ●删除附加信息
    有时图片会存储一些元信息,如相机型号、光圈大小,曝光时间等等。没有必要的话,全部清除就可以了。我的Canon EOS 450D相机照的相片,最高清晰度的话,附加信息可以占到2M左右的信息量,够大了。
    convert +profile "*" 001.jpg 002.jpg

  上面说的都是单一文件,如何转换一个目录下,包括子目录下所有的图片文件呢?

  第二位主角find命令登场。什么?你用的是Windows,没关系,那就换主角for命令登场吧。
  这位主角太常见了,不介绍了,不清楚的看看我博客Linux分类中关于find命令的介绍。或者直接查手册吧。

  两位主角联合登场了,看看威力吧,修改源目录下的所有jpg文件大小为100x100:
   find 源目录 -type f -name *.jpg -exec convert -resize ”100x100>“ {} {} \;
  源文件被覆盖了,不是很好。分两步,先生成修改后图片的存放目录,然后把转换后的图片存放到该目录:
   find 源目录 -type d -exec mkdir -p 指定目录/{} \;
   find 源目录 -type f -name *.jpg -exec convert -resize ”100x100>“ {} 指定目录/{} \;

  最后的完全版本:
   find 源目录 -type d -exec mkdir -p 指定目录/{} \;
   find 源目录 -type f -iname *.jpg -exec convert -resize "100x100>" +profile "*" -fill blue -pointsize 40 -draw 'text 600,600 "Hello World!"' {} 指定目录/{} \;

  你可以写一个脚本处理以上命令,那就不用每次都输入这么长的命令了。
上次由 THINKERCN 在 2010-05-30 10:39,总共编辑 2 次。
头像
tenzu
论坛版主
帖子: 36924
注册时间: 2008-11-21 20:26

Re: 图片批量修改利器 - ImageMagick

#2

帖子 tenzu » 2010-05-29 19:40

版规是啥?
delectate
帖子: 18311
注册时间: 2008-01-09 22:41

Re: 图片批量修改利器 - ImageMagick

#3

帖子 delectate » 2010-05-29 19:43

tenzu 写了:版规是啥?
问版主 :em09
头像
shinery
帖子: 1378
注册时间: 2009-07-22 22:23

Re: 图片批量修改利器 - ImageMagick

#4

帖子 shinery » 2010-05-29 19:54

版规难道规定自由软件用法不能泄漏?
愿扣上你双手,至繁华浪处到沙丘。
THINKERCN
帖子: 79
注册时间: 2008-10-21 11:17

Re: 图片批量修改利器 - ImageMagick

#5

帖子 THINKERCN » 2010-05-29 20:06

不是“仅仅用于软件推荐,不适合发求软件或软件使用问题方面的贴子“,可以发具体用法?
:em11 算了,提高一下博客的点击率,呵呵。
头像
shinery
帖子: 1378
注册时间: 2009-07-22 22:23

Re: 图片批量修改利器 - ImageMagick

#6

帖子 shinery » 2010-05-29 21:11

不适合发 求软件或(求)软件使用问题(解决方法) 方面的贴子

不是不适合发介绍软件使用方法的。 :em06

顺便说一句,博客速度比本论坛还慢,程序换Wordpress吧,看起来会比现在的舒服。
愿扣上你双手,至繁华浪处到沙丘。
THINKERCN
帖子: 79
注册时间: 2008-10-21 11:17

Re: 图片批量修改利器 - ImageMagick

#7

帖子 THINKERCN » 2010-05-29 22:54

shinery 写了:不适合发 求软件或(求)软件使用问题(解决方法) 方面的贴子

不是不适合发介绍软件使用方法的。 :em06

顺便说一句,博客速度比本论坛还慢,程序换Wordpress吧,看起来会比现在的舒服。
用了一段Wordpress,不想研究她了。现在的比较傻瓜化,省心多了。
:em06 国外的空间,时快时慢。
头像
jimmyxu
帖子: 335
注册时间: 2009-11-16 0:30
来自: sh
联系:

Re: 图片批量修改利器 - ImageMagick

#8

帖子 jimmyxu » 2010-05-30 3:45

相当实用!!顶一顶 :em11
只有历经,才能懂得!!
回复