用ImageMagick命令行处理图片
ImageMagick是强大的图像处理工具,他的强大之处在于Linux与生俱来的命令行特性,基于命令行的一系列工具可以让你完成、处理常见的图像操 作,诸如生成缩略图,缩放,查看信息,加注标题,水印等等,功能上绝不亚于很多自诩出GUI工具,学习使用ImageMagick是有益的,至少可以体 会CLI的强大和简洁的行事风格。这里列举一些使用ImageMagick的例子来说明如何在命令行界面下处理图像。
确信你的Linux装有ImageMagick的最快方法是
rpm -qi ImageMagick
(如果你的系统不是基于RPM的,请执行
display或animate命令,确保你是在X Windows环境下)
生成缩略图和缩放!
ImageMagick的convert命令简直是万能的!
生成缩略图,
convert -sample 100x20 input.jpg output.jpg
上述命令生成一个100x20的缩略图
更好的方法是用等比例缩放,像这样,统一生成1/4的缩略图,
convert -sample 25%x25% input.jpg output.jpg
如果写成脚本,就是像这个样子,
for img in `ls *.jpg`
do
convert -sample 25%x25% ${img} thm${img}
done
格子衬衫怎么搭配这样可以对一个目录下的JPG文件一起生成缩略图了!
convert还可以直接用来生成图片,这个在一些特殊的时候有用,例如,可以用下面的命令生成法国国旗图案,
convert -size 20x40 xc:red xc:white xc:blue +append flag.png
转化图像格式就更加方便,
convert input.png output.jpg
这就是Linux,简单直接!!
还有旋转,
convert -rotate 90 input.jpg output.jpg
还有加注图片,
convert -font f -stroke color -fill color -pointsize size
-draw 'text 10,10 "String"' input.jpg output.jpg
-font 指定字体,因为这样我加注文字,
-stroke 描边用的颜,
-fill 填充用的颜,这里用none就可以画出空心字了,
-pointsize 加注字体大小,像素数,
-draw 是用来画,这里是文字,下面的位置10,10 是以图片左上角为原点坐标的。
convert还可以做出很多其他的艺术效果,这里不再详述,可以参见相关手册。
用convert给图片加边框语言表达技巧
convert -raise 5x5 input.jpg output.jpg
convert +raise 5x5 input.jpg output.jpg
以上命令分别用-,+边缘颜的来达到处理边缘的效果!
convert -bordercolor red -border 5x5 input.jpg output.jpg
简单的加上5个像素宽的红边!
其他的边框会比这个复杂,包括参数mattecolor的使用等等,参见相关手册。
composite来组合图片,
例如,
composite –gravity SouthEast toplogo.png image.png image_logo.jpg
图片底部是South,右边是East。
ImageMagick 包括一组命令行工具来操作图片。你大部份习惯每次编辑图片都提供图形用户接口 (GUI) 编辑图像就像GIMP和PhotoShop一样。 然而,一个图形用户接口不总是方便的。 假如你想要从一个网页动态地处理一个图像,或者你在不同时间生成一样的或不同的图像,想要对许多图像或重复特定应用相同的操作。 对于操作的这些类型,处理公用程序命令行工具是一个好的选择。
在下面的段落中,可以到命令行工具的简单短描述。点击程序名称可以得到关于这个程
序的具体用法。 如果你想得到更多的关于ImageMagick,请仔细阅读以下命令行工具的使用方法:
convert
全球金融危机时间转换图像格式和大小,模糊,裁剪,驱除污点,抖动,临近,图片上画图片,加入新图片,生成缩略图等。
identify
描述一个或较多图像文件的格式和特性。带手字的成语
mogrify
按规定尺寸制作一个图像,模糊,裁剪,抖动等。Mogrify改写最初的图像文件然后写到一个不同的图像文件。
composite
根据一个图片或多个图片组合生成图片。
montage
创建一些分开的要素图像。在含有要素图像任意的装饰图片,如边框、结构、图片名称等。
compare
在算术上和视觉上评估不同的图片及其它的改造图片。
display
如果你拥有一个X server的系统,它可以按次序的显示图片
animate
利用X server显示动画图片
import
在X server或任何可见的窗口上输出图片文件。 你可以捕获单一窗口,整个的荧屏或任何
荧屏的矩形部分。
conjure
解释执行 MSL (Magick Scripting Language) 写的脚本。
ImageMagick是一个强大的命令行图像处理软件,配合dos命令,就可以批量对大量图片进行处理了。
可以去下载最新版本的ImageMagick,安装后就可以在dos窗口中采用convert命令对图片进行转换了,命令格式如下:
convert <输入图片名> [+/-命令和命令的参数]* <输出图片名>
其中命令的执行是有顺序的,按照从左至右的顺序依次执行,比如:
convert 1.jpg -crop 300x300+0+0 -resize 200x200 -colors 100 +profile "*" 1.png
表示:把1.jpg先从左上角(0,0)裁剪一块300x300的部分,然后把这部分缩小到200x200,
然后把颜缩减到100,最后生成1.png。"+profile "*""意味着在图片文件里不存储附加信息,以减小图片体积。
注意,-resize会试图保留原图的视觉比例,因此不一定生成的图片和你指定的尺寸一定匹配,比如,如果2.jpg大小是400x200,那么如果用下面的命令:
convert 2.jpg -resize 100x100 2.png
那么生成的图片2.png的实际大小是100x50。
常用的命令有:
-crop 宽x高+起点横坐标+起点纵坐标:裁剪图
-resize 宽x高[!]:改变尺寸,如果使用惊叹号,表示不保留视觉比例,强行改变尺寸匹配给定的宽和高
-colors 颜数:设定图片采用的颜数,如果是生成png或gif图片应指定这个参数
无尽之剑 攻略-
quality 质量:设定jpeg图片输出质量,推荐采用80,此命令仅用于输出格式是jpg的情况,不应省略,省略的话默认质量是95,生成图片过大
+profile "*":图片中不存储附加信息,必须使用,否则生成图片过大
配合dos命令就可以进行批量处理了,可以采用批处理文件或者使用for循环,对于简单的操作,推荐采用for循环,使用方法举例:
for %I in (*.jpg) do convert %I -resize 200x200 -colors 20 +profile "*" %~nI.png
把当前目录下所有jpg文件改变大小到200x200,并降低颜到20,生成对应的png文件,for命令的详细解释请使用for /?查看。
Image MagicK 是一个强大的图象处理工具包。它提供了几个非常方便的命令行命令: display, animate,import, montage,mogrify,identify等,可以进行图象的显示,缩放,旋转,调,加框,加注释等,还能制作GIF动画,图象索引,能自动生 成图象.
制作索引图和动画
!
/bin/bash
montage -bordercolor red -borderwidth 3 -label "%f" -tile 5x3 *.JPG montage.jpg
mogrify -format gif *.JPG
display montage.jpg
animate *.JPG
缩放 convert -sample 80x40 input.jpg output.jpg #注意:缩放后图像保持原来的长宽比例 convert -sample 25%x25% input.jpg output.jpg
为当前目录的所有图像生成缩略图
for img in `ls *.jpg`
do
convert -sample 25%x25% $img thumb-$img
done
获取文件信息 libtiff
tiffinfo filename.tiff
pnginfo filename.png
可以使用 ImageMagick 的 identify
identify -verbose sample.png
identify -format "%wx%h" sample.png
旋转图像
convert -rotate 90 input.jpg output.jpg
更改文件类型
convert input.jpg output.png
为图像增加注释文字
convert -font helvetica -fill white -pointsize 36 \
-draw 'text 10,50 "Floriade 2002, Canberra, Australia"' \
floriade.jpg comment.jpg
convert -font f -fill white -pointsize 36 \坦克世界盒子
-draw 'text 10,475 "stillhq"' \
floriade.jpg stillhq.jpg
特殊效果
convert -charcoal 2 input.jpg output.jpg #炭笔
convert -colorize 255 input.jpg output.jpg #着 可以指定三种颜 red/green/blue
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论