西西软件园多重安全检测下载网站、值得信赖的软件下载站!
软件
软件
文章
搜索

首页西西教程软件使用 → ImageMagick怎么用 ImageMagick命令行代码使用教程

ImageMagick怎么用 ImageMagick命令行代码使用教程

相关软件相关文章发表评论 来源:西西整理时间:2017/7/26 14:15:36字体大小:A-A+

作者:西西点击:0次评论:0次标签: ImageMagick ImageMagick怎么用

ImageMagickv7.0.6.3 绿色版
  • 类型:图像浏览大小:74.2M语言:英文 评分:6.6
  • 标签:
立即下载

ImageMagick是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。其全部源码开放,可以自由使用,复制,修改,发布。它遵守GPL许可协议。它可以运行于大多数的操作系统。 最为重要的是,ImageMagick的大多数功能的使用都来源于命令行工具。

ImageMagick还有一个小工具identify,它可以用来显示一个图片文件的详悉信息,比如格式、分辨率、大小、色深等等,你都可用它来帮你的忙。

convert 转换图像格式和大小,模糊,裁剪,驱除污点,抖动,临近,图片上画图片,加入新图片,生成缩略图等。

identify 描述一个或较多图像文件的格式和特性

composite 根据一个图片或多个图片组合生成图片

举个例子

convert +profile '*' [src]{file}.{ext} -quality 80 -resize '280x140^>' -gravity Center -crop 280x140+0+0 +repage [out]{file}_280x140.{ext}

把一张图片按80的质量去压缩(jpg的压缩参数),同时按图片比例非强制缩放成不超过280x140的图片.居中裁剪280x140,去掉图片裁减后的空白和图片exif信息,通常这种指令是为了保证图片大小正好为280x140

下面对各个指令的含义简要说明

-quality   图片质量,jpg默认99,png默认75

-resize

100x100      高度和宽度比例保留最高值,高比不变

100x100^     高度和宽度比例保留最低值,宽高比不变

100x100!      宽度和高度强制转换,忽视宽高比

100x100>     更改长宽,当图片长或宽超过规定的尺寸

100x100<     更改长宽 只有当图片长宽都超过规定的尺寸

100x100^>   更改长宽,当图片长或宽超过规定的尺寸。高度和宽度比例保留最低值

100x100^<   更改长宽,只有当图片长宽都超过规定的尺寸。高度和宽度比例保留最低值

100             按指定的宽度缩放,保持宽高比例

 x100          按指定高度缩放,保持宽高比

 

-gravity NorthWest, North, NorthEast, West, Center, East,  SouthWest, South, SouthEast截取用的定位指令,定位截取区域在图片中的方位

 

-crop 200x200+0+0 截取用的截取指令 ,在用定位指令后,按后两位的偏移值偏移截取范围左上角的像素后,再按前两位的数值,从左上角开始截取相应大小的图片

 

+repage 去掉图片裁减后的空白


-dissolve 30 设定组合图片透明度dissolve示例


+/-profile * 去掉/添加图片exif信息

下面记录下一些比较复杂一点的指令:

convert +profile '*' [src]{file}.{ext} -quality 90 -resize '700>' /data/tony/watermark_1.png -gravity southeast -compose Dissolve -composite [out]{file}_1024x1024.{ext}

convert +profile '*' [src]{file}.{ext} /data/watermark_1.png -gravity southeast -geometry +10+10 -composite [src]{file}.{ext}

convert +profile '*' [src]{file}.{ext} -coalesce -resize '950x135>' [out]{file}_950x135.{ext}

convert +profile '*' [src]{file}.{ext} -resize '650x500>' miff:- | composite +profile '*' -dissolve 30 -gravity southeast /data/tony/watermark_1.png - [out]{file}_650x500.{ext}

convert [src]{file}.{ext} -quality 80 -resize '190>' -background white -gravity center -extent 190x +repage [out]{file}_width190.{ext}

【/bin/sh^M: bad interpreter: 没有那个文件或目录】
vim filename 
然后用命令 
:set ff? #可以看到dos或unix的字样. 如果的确是dos格式的。 
然后用 
:set ff=unix #把它强制为unix格式的, 然后存盘退出。


convert功能强大,用来批处理图片的放大、缩小、裁剪、旋转、合并、水印、拼接、&#26684;式转换等都非常方便,特别适合后台的图片处理。

1,获取图片信息


$identify image.png
image.png PNG 559x559 559x559+0+0 8-bit sRGB 467KB 0.000u 0:00.008


如果只需要获取宽高:


$identify -format "%wx%h" image.png


2,放大,缩小 -resize


$convert image.png -resize 200x200 resize.png


>

也可以按照比例(缩小一半):



$convert image.png -resize 50% resize.png


还可以多次缩放(先缩小一半,再放大一倍,效果就是变模糊了):


$convert image.png -resize 50%  -resize 200%  resize.png


3,放大,缩小 -sample

与resize的区别在于-sample只进行了采样,没有进行插&#20540;,所以用来生成缩略图最合适


$convert image.png -sample 50% sample.png



这个处理的效果就是马赛克:



$convert image.png -sample 10% -sample 1000% sample.png



4,裁剪 -crop

从(50,50)位置开始,裁剪一个100X100大小的图片:



$convert image.png -crop 100x100+50+50 crop.png



如果不指定位置,则按照这个大小分隔出小图片,这个命令生成crop-0.png,crop-1.png,crop-2.png……:



$convert image.png -crop 100x100 crop.png



可以指定裁剪位置的相对位置 -gravity:



$convert image.png -gravity northeast -crop 100x100+0+0 crop.png



-gravity即指定坐标原点,有northwest:左上角,north:上边中间,northeast:右上角,east:右边中间……

5,旋转 -rotate



$convert image.png -rotate 45 rotate.png



默认的背景为白色,我们可以指定背景色:



$convert image.png -backround black -rotate 45 rotate.png
$convert image.png -background #000000 -rotate 45 rotate.png



还可以指定为透明背景色:



$convert image.png -background rgba(0,0,0,0) -rotate 45 rotate.png



6,合并

合并指的是将一张图片覆盖到一个背景图片上:



$convert image.png -compose over overlay.png -composite newimage.png



-compose指定覆盖操作的类型,其中over为安全覆盖,另外还有xor、in、out、atop等等

覆盖的位置可以通过-gravity指定:



$convert image.png -gravity southeast -compose over overlay.png -composite newimage.png



这是将图片覆盖到底图的右下角。

7,更改图片的alpha通道

分两步:



$convert image.png -define png:format=png32  image32.png
$convert image32.png -channel alpha -fx "0.5" imagealpha.png



这个命令首先将image.png的&#26684;式改为png32(确保有alpha通道),然后更改alpha通道置为0.5,也就是半透明,&#20540;的范围为0到1.0

可以使用将一张透明图片覆盖到原图上的方式做水印图片:



$convert image.png -gravity center -compose over overlay.png -composite newimage.png
$convert image.png -gravity southeast -compose over overlay.png -composite newimage.png



8,拼接

横向拼接(&#43;append),下对齐(-gravity south):



$convert image1.png image2.png image3.png -gravity south +append result.png



纵向拼接(-append),右对齐(-gravity east):


$convert image1.png image2.png image3.png -gravity east -append result.png



9,&#26684;式转换



$convert image.png image.jpg
$convert image.png -define png:format=png32 newimage.png



10,文字注释


$convert image.png -draw "text 0,20 'some text'" newimage.png


从文件text.txt中读取文字,指定颜色,字体,大小,位置:


$convert source.jpg -font xxx.ttf -fill red -pointsize 48 -annotate +50+50 @text.txt result.jpg


11,去掉边框

$convert image.png -trim -fuzz 10% newimage.png

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)