本文转载自: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. windows phone数据网络开发

    LINQ LINQ的全称是Language INtegrated Query,即语言集成查询.LINQ是一种查询语言,不仅可以对数字库进行查询,还可以对.net的数据集.数组.Xml文档等对象进行查询 ...

  2. CSS选择器优先级计算

    优先级从高到低排列,浏览器优先满足前面的规则 1,!important优先级最高 2,内联样式 3,作者>读者>浏览器 4,优先级权重加法 id选择器+100/个 类/伪类选择器+10/个 ...

  3. 同域之下子iframe的DOM控制问题

    new_file.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...

  4. 子线程更新UI

    https://www.cnblogs.com/joy99/p/6121280.html

  5. Net.Json 常用例子

    #JsonConvert 例子 内容主要都是官方的例子,加上一些中文注释而已. 主要方便自己查询,分享一份出来. 参考文档: https://www.newtonsoft.com/json/help/ ...

  6. Python3编写自动签到服务程序

    公司加班的餐补需要登录网站签到领取,有时候会忘记,于是自己用Python写了小程序来自动签到.刚开始只是做了自己用,直接写的黑框程序,后来给同事用,就打包成exe.再后来有人说要写成window服务会 ...

  7. 集合运算(UNION)

    表的加法 集合运算:就是满足统一规则的记录进行的加减等四则运算. 通过集合运算可以得到两张表中记录的集合或者公共记录的集合,又或者其中某张表中记录的集合. 集合运算符:用来进行集合的运算符. UNIO ...

  8. apicloud常用分享方法

    app中经常会有分享的功能,不管是分享商品还是文字还是图片或者是发送给微信好友扣扣好友,一下做一总结. 分享的样式(分享所有的样式模块):MNActionButton. 在apicloud 中添加这个 ...

  9. The remote certificate is invalid according to the validation procedure 远程证书验证无效

    The remote certificate is invalid according to the validation procedure   根据验证过程中远程证书无效 I'm calling ...

  10. BZOJ 1864: [Zjoi2006]三色二叉树 树形DP + 读入

    Description Input 仅有一行,不超过500000个字符,表示一个二叉树序列. Output 输出文件也只有一行,包含两个数,依次表示最多和最少有多少个点能够被染成绿色. 题解:本题大水 ...