本文转载自:http://www.linuxdiyf.com/linux/11680.html

不管你知不知道,现在是一个用ImageMagick的好机会,至少,如果你是一个Linux用户的话。这是一个藏在很多图形相关的应用程序后边的图像处理器,并且有着很充分的理由。有了这个工具,你可以在命令行或者脚本/应用程序里面进行一大堆的常见图像操作和转换。ImageMagick可以对图像完 成转换、变幻、绘制、装饰、动画以及混合等操作。它既可以在命令行上进行快速操作,也可以集成到一个复杂的软件套装里面。这份指南包括了那些最具“魔术” 性质的ImageMagick特征,并提供了如何使用它来完成日常任务的操作示例。

一个关于convert的提示:在本文中convert这 个命令名将会多次被提及。这是访问ImageMagick功能的数个命令中的一个,并不单指类型之间的转换。我们用convert这个词开始的一个命令并不见得就是将图像从一种格式转换到另一种 格式。

获取ImageMagick

在许多Linux系统上ImageMagick是已经预装的,因此你完全不必担心关于安装的问题。查找它的一个简单办法是打开命令行并且输入

which convert

如果它给出了类似于/usr/bin/convert的结果,那么一切都已就绪,可以开始下一节了。如果没有,它也应该在你发行版的标准仓库中。Debian和Ubuntu的用户可以这样获取之

sudo apt-get install imagemagick

转换基本的图像类型

ImageMagick在完成简单图像转换方面很强大。比如,转换JPG到PNG就这么简单:

convert myPicture.jpg myPicture.png

一个很重要的提示是convert命令会在一个拷贝的文件上进行操作。使用转换操作不会替换或者覆盖你的原始图像。

简单变换

转换图像的时候,你可以增加一些选项标志以完成诸如旋转、改变大小和裁剪之类的变换操作。如上所述,我们会使用convert命令,但这并不意味着必须选择一种不同的输出类型。

将单个图像旋转90度

convert -rotate 90 MyPicture.jpg MyPicture-rotated.jpg

文件名展开/通配符/批处理

文件名展开(Globbing)是一个用通配符(比如"*")来代表一组文件的常用术语。ImageMagick支持命令行上的文件名展开,因此你 可以在使用通配符来处理一组文件。比如,要将一个目录下的所有JPG 文件转换成PNG文件,你可以使用类似于下面这样的命令

convert *.jpg image.png

这样会创建一批新的PNG文件,名称为image-0.png, image-1.png, image-2.png, 等等。

创建GIF动画

ImageMagick的智能命令解析意味着它能够基于你所指定的输入类型猜测你最可能想做什么操作。在前面那个例子中,我们使用的是convert *.jpg image.png,而ImageMagick为每个JPG文件创建了一个独立的拷贝。如果我们把".png"替换 成".gif"会发生什么呢?答案是不会有多个GIF文件,而是创建一个混合了所有JPG文件的动态GIF图像。

convert *.jpg myanimated.gif

文本效果

使用ImageMagick,你甚至可以从命令行获取文本病渲染成图形。在本例中,我们为渲染器指定了背景颜色、文本颜色、字体、字号和文本内容。 这里我手动指定了一个TTF字体的路径。

convert -background lightblue -fill yellow -font /usr/share/fonts/truetype/thai/Purisa.ttf -pointsize 72 label:ImageMagick rendertext.png

注解/水印

有时候你可能需要添加一些文本或者徽标/图形到一个已有的图像文件。为了这个目的你要使用-append选项。在本例中,我在图像的下方添加了一个长条并带有提示内容。如果我有个叫tux.jpg的 文件,我可以用下面这个命令在下方添加一条提示:

convert tux.jpg -background Khaki label:'This is Tux!' -gravity Center -append tux_annotated.jpg

注:以上图片上传到红联Linux系统教程频道中。

结论这里展示的一些例子只是稍微触及了一下ImageMagick的表面。如果花上点时间实践一下,并适当参照这个怪兽级指南的帮助,你可以用这个程序完成很多奇妙的事情。你也并不是非得使用命令行,因为ImageMagick提供了C、C++、Java、.NET、Python等各种语言的API。如果你有什么用ImageMagick工作的小故事,请在评论中告诉我们!

Linux下用ImageMagick玩图像魔术【转】的更多相关文章

  1. linux下的ImageMagick安装方法

     linux下的ImageMagick安装方法  由于没有图形化界面的支持,在Linux(CentOS 6.4 x64)上的配置相对Windows XP还是麻烦了一点.   1.下载ImageMagi ...

  2. linux下 安装 ImageMagick 及其 php imagick扩展(转)

    linux下 安装 ImageMagick 及其 php imagick扩展 PHP版本7.1.3 : ImageMagick版本 ImageMagick-7.0.8-3: PHP扩展imagick版 ...

  3. Linux下php+imagemagick支持webp格式的图片

    摘要 ImageMagick是一款功能强大的图片处理工具包,很多互联网应用中都会涉及到图片处理工作,比如切割.缩放.水印.格式转换等.ImageMagick就是一个理想的工具包. 安装基础依赖 先检查 ...

  4. Linux下编译boost库和qt和ImageMagick

    需要把整个PCIE的工程移植到Linux下,当初就是用cmake来管理的工程的.但是命令行之类的还是需要改动.改动还不少,cmake里面很多东西都依赖于windows.包括我用cmake重新管理的工程 ...

  5. Linux下玩转Dota2

    Dota2是一款颇为风靡的即时战略类游戏,去年官方就支持Mac和Linux了,对于习惯Mac和linux平台的孩子们来说,简直感动的泪流满面. 当然,也简直是linux程序猿的福音啊啊! 与Win8. ...

  6. .Neter玩转Linux系列之六:Linux下MySQL的安装、配置、使用

    一.Linux安装MySQL (1)下载安装包:https://dev.mysql.com/downloads/mysql/ (2)解压并安装 命令:tar zxvf 文件名 解压完成之后,重名一下文 ...

  7. .Neter玩转Linux系列之三:Linux下的分区讲解

    基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...

  8. .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础

    基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...

  9. 最近玩了下linux下的lampp注意一些使用

    最近玩了下linux下的lampp注意一些使用 1 配置文件 /opt/lampp/etc 2 一些命令 mysql命令 /opt/lampp/bin/mysql php命令 /opt/lampp/b ...

随机推荐

  1. 讲究地使用 List

    本篇旨意在于讨论List的基本用法,不做全面讲解,仅仅涉及构造函数List.Add.RemoveAt 先看看这几个函数的代码 1.构造函数 static readonly T[] _emptyArra ...

  2. Android Studio 将module打成jar包

    1.新建测试工程,工程里面有两个module,app是Android工程,mylibrary是Android Library库. 2.打开mylibrary目录下的build.gradle文件,加入下 ...

  3. ie8及其以下版本兼容性问题之响应式

    解决办法:引入Respond.js让IE6-8支持CSS3 Media Query 使用方式 参考官方demo:http://scottjehl.github.com/Respond/test/tes ...

  4. NetCore下获取项目文件路径

    我要获取的是doc/FPFile.xml 百度了一大堆就是找不到解决问题. 把属性更改为始终赋值, XmlDocument xdi = new XmlDocument(); xdi.Load((&qu ...

  5. 三维重建:SLAM的粒度和工程化问题

    百度百科的定义.此文引用了其他博客的一些图像,如有侵权,邮件联系删除. 申明一下,SLAM不是一个算法,而是一个工程. 在计算机视觉中, 三维重建是指根据单视图或者多视图的图像重建三维信息的过程. 由 ...

  6. .NET 解决方案 核心库整理

    一系列令人敬畏的.NET核心库,工具,框架和软件: https://www.cnblogs.com/weifeng123/p/11039345.html 企业级解决方案收录:  https://www ...

  7. phtoshop CC2018破解简单过程

    1.下载adobe photoshop cc 2018(可以用360安全卫士下载)-->并安装2.下载破解补丁,破解补丁下载地址:http://www.xue51.com/soft/1377.h ...

  8. SQL语句注意得问题

    1/不要使用count(列明)或count(常量)来替代count(*),count(*)是SQL92定义得标准统计行数得语法,跟数据库无关,跟NULL和非NULL无关. 说明:count(*)会统计 ...

  9. 配平化学方程式的C++代码实现

    配平化学方程式的C++代码实现 纪念一下我今天写过了 20171006. (去年的这个时候我就有了这个大胆的想法, 当时的思路是:字符串处理->暴力搜系数,可是太年轻写不对,我那会还是个只会模拟 ...

  10. eclipse导入Javaweb文件出错解决

    在项目名上右击打开properties,如图在箭头指的位置可以看出有个unbound表示导入的资源库出现 异常,需要手动导入,1.点击Server Library{Apache Tomcat v9.0 ...