Linux下用ImageMagick玩图像魔术【转】
本文转载自: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玩图像魔术【转】的更多相关文章
- linux下的ImageMagick安装方法
linux下的ImageMagick安装方法 由于没有图形化界面的支持,在Linux(CentOS 6.4 x64)上的配置相对Windows XP还是麻烦了一点. 1.下载ImageMagi ...
- linux下 安装 ImageMagick 及其 php imagick扩展(转)
linux下 安装 ImageMagick 及其 php imagick扩展 PHP版本7.1.3 : ImageMagick版本 ImageMagick-7.0.8-3: PHP扩展imagick版 ...
- Linux下php+imagemagick支持webp格式的图片
摘要 ImageMagick是一款功能强大的图片处理工具包,很多互联网应用中都会涉及到图片处理工作,比如切割.缩放.水印.格式转换等.ImageMagick就是一个理想的工具包. 安装基础依赖 先检查 ...
- Linux下编译boost库和qt和ImageMagick
需要把整个PCIE的工程移植到Linux下,当初就是用cmake来管理的工程的.但是命令行之类的还是需要改动.改动还不少,cmake里面很多东西都依赖于windows.包括我用cmake重新管理的工程 ...
- Linux下玩转Dota2
Dota2是一款颇为风靡的即时战略类游戏,去年官方就支持Mac和Linux了,对于习惯Mac和linux平台的孩子们来说,简直感动的泪流满面. 当然,也简直是linux程序猿的福音啊啊! 与Win8. ...
- .Neter玩转Linux系列之六:Linux下MySQL的安装、配置、使用
一.Linux安装MySQL (1)下载安装包:https://dev.mysql.com/downloads/mysql/ (2)解压并安装 命令:tar zxvf 文件名 解压完成之后,重名一下文 ...
- .Neter玩转Linux系列之三:Linux下的分区讲解
基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...
- .Neter玩转Linux系列之四:Linux下shell介绍以及TCP、IP基础
基础篇 .Neter玩转Linux系列之一:初识Linux .Neter玩转Linux系列之二:Linux下的文件目录及文件目录的权限 .Neter玩转Linux系列之三:Linux下的分区讲解 .N ...
- 最近玩了下linux下的lampp注意一些使用
最近玩了下linux下的lampp注意一些使用 1 配置文件 /opt/lampp/etc 2 一些命令 mysql命令 /opt/lampp/bin/mysql php命令 /opt/lampp/b ...
随机推荐
- 上传文件到linux系统方法
linux,windows filezilla 方法/步骤 下载 Filezilla client工具,此客户端为免费软件,下载完成后安装,安装一路下一步在这里就不过多阐述了,下载地址 htt ...
- 玩转公众号markdown排版
Md2All 简介 Markdown排版利器,支持 "一键排版" 的样式模板选择,支持"css样式自定义",支持80多种代码高亮. 能让Markdown内容,无 ...
- android学习-第二讲(修改项目名称和图标,log,过滤器)
一.在app/src/main/res下有 AndroidManifest.xml打开,打开后如下图1 二.日志工具log log.v() log.d() log.i() log.w() lo ...
- java反射_01
为什么要用反射? 举个栗子: package com.imooc.reflect; public class Work { // 定义一个word方法 public void word() { Sys ...
- Morse理论:拓扑不变性特征匹配原理
设计精美的宽基线双目相机镇文 Mo'ersi lilun莫尔斯理论(卷名:数学) Morse theory 微分拓扑的一个重要分支.通常是指两部分内容:一部分是微分流形上可微函数的莫尔斯理论,即临界点 ...
- php header() 函数用法归纳
301 永久重定向 <?php header('HTTP/1.1 301 Moved Permanently'); header('Location: http://www.example.co ...
- 【sqli-labs】 less29 GET- Error based -Impidence mismatch -Having a WAF in front of web application (GET型基于错误的带有WAF注入)
这关有点意思,有一点需要事先注意,这关玩的是login.php而不是默认的index.php 再注入之前需要先了解一下HPP(HTTP Parameter Pollution),详情参照这篇 http ...
- MQTTnet 的Asp.Net Core 认证事件的扩展
MQTTnet 的数据接收 连接 等事件都很丰富, 唯独客户端连接验证不能依赖注入也不能很舒服的使用事件的方式, 因此MQTTnet.AspNetCoreEx 就出现了. 示例如下:在 public ...
- eas之执行sql的方式
客户端: 1. 有返回集合:查询 //查询出DB中所有该字段的值,与其进行比较,若有相同的则报错 String sql="select CFWuliaoCode fr ...
- 实体服务器安装centos7过程记录
一次在实体服务器安装centos 7的过程记录 第一次在实体服务器上面安装服务器(centos 7),在此记录安装过程中遇到的一些坑. 系统版本:CentOS Linux release 7.6.18 ...


