本文转载自: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. RabbitMQ .NET消息队列使用入门(二)【多个队列间消息传输】

    孤独将会是人生中遇见的最大困难. 实体类: DocumentType.cs public enum DocumentType { //日志 Journal = 1, //论文 Thesis = 2, ...

  2. Spring Boot (3) 热部署devtools

    热部署:当发现程序修改时自动启动应用程序. spring boot为开发者提供了一个名为spring-boot-devtools的模块来使sring boot应用支持热部署,提高开发者的开发效率,无需 ...

  3. 5.17领扣--Arrays.copyOf()方法

    ?? 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同 ...

  4. iphone(苹果)手机浏览器顶部下拉出现网页源

    在苹果手机下拉页面,会出现类似上图那样,具体方法如下: function handler(){//禁止默认滑动函数 event.preventDefault();}document.addEventL ...

  5. jQuery学习笔记之概念(1)

    jQuery学习笔记之概念(1) ----------------------学习目录-------------------- 1.概念 2.特点 3.选择器 4.DOM操作 5.事件 6.jQuer ...

  6. Android 解决小米手机Android Studio安装app 报错的问题It is possible that this issue is resolved by uninstalling an existi

    Android Studio升级到2.3版本之后,小米手机MIUI8不能运行Android Studio程序,报如下错误: Installation failed with message Faile ...

  7. 作业08之《MVC实现用户权限》

    1. 赋给用户一个userid,在用户角色表将用户和角色关联起来,在角色权限表中将角色和权限对应起来,权限表中存储的是左边菜单栏的名称. 2. 在判断权限时,通过用户的userid,获取其角色id,然 ...

  8. 【Python基础】while循环语句

    Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务.其基本形式为: while 判断条件: 执行语句…… 执行语句可以是单个语句或语句 ...

  9. python 字符串模糊匹配 Fuzzywuzzy

    Python提供fuzzywuzzy模块,不仅可用于计算两个字符串之间的相似度,而且还提供排序接口能从大量候选集中找到最相似的句子. (1)安装 pip install fuzzywuzzy (2)接 ...

  10. 1. 构建第一个SpringBoot工程

    1.File -  New - Module 2.选项的是Spring Initializr(官方的构建插件,需要联网) ,一定要选择jdk 3.填写项目基本信息 Group:组织ID,一般分为多个段 ...