设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
小说专版  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专   题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: IT公社 IT community >> Linux专题 >> Linux应用技巧 >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
使用自由软件Rexx 的实现…
学习使用Perl 5.8.6 中的…
配置和使用KDE
在FREEBSD 5中使用MRTG画…
在Linux桌面上随意使用W…
Linux操作系统下X终端的…
移动开源降成本 六巨头建…
在Perl 中使用内联
使用FreeVSD强化您的Lin…
使用 freeVSD强化您的开…
  使用ImageMagick 的提示与技巧         
使用ImageMagick 的提示与技巧
 

没有什么能像命令行工具这样适合于处理大批量的任务,对于图像处理也不例外。Web 开发人员和管理员会喜欢轻松处理大量文件的能力,无论是使用命令行还是脚本。程序员 Michael Still 给出了更多关于 ImageMagick 套件的示例,这一次向您示范了如何将圆角、徽标或者边框和边添加到您的图像中,以及如何与多页文件格式 (包括 Adobe PDF 格式)进行转换。

去年我为 developerWorks 写了一篇关于在命令行中使用 ImageMagick 处理图像的文章。那篇文章得到了相当好的评价,此后我通过电子邮件收到了很多关于 ImageMagick 的问题。本文是对上一篇文章中讨论的技术的扩展,并且回答了那些我力所能及的问题。如果这是您在 IBM DeveloperWorks 发现的第一篇关于 ImageMagick 的文章,那么您最好先去阅读其第一篇文章(在 参考资料 部分可以找到它的链接)。

本文采用了根据示例来讨论特定问题的论述方法,但是那些概念同样适用于其他问题空间。这个方法和前一篇文章所采用的方法相同。这里讨论到的技术也可以和我们先前讨论的那些技术结合到一起使用。

应该注意的是,有很多方法可以完成本文中讨论的内容。我将只讨论我所使用的方法,并且知道这些方法适合我。这并不是说除此以外其他工具不好,而只是表示我喜欢我现在使用的工具。

圆角

如果您看一看 Mac OS/X,以及很多 Web 站点,那些图片有非常漂亮的圆角。您怎样才能用 ImageMagick 实现这一效果?好的,我们将展示一些使用 composite 命令来生成这种效果的灵活方法。

不过,在我们达到目的之前,让我们先谈一下我们将要运用的策略。如果您考虑一下,可以通过将一些标准预制的角叠加到原始图像上来制作出具有圆角的图像。甚至不需要是圆的角 —— 我们可以用尖角,或者是更有趣的东西。

记住将角的多余部分设置为透明的。这一透明特性可以让我们要叠加角的图像仍可以显示出来。这可能会让人有些迷惑,因为有一些图像浏览器,比如 xview,将以黑色或者其他颜色来表示透明。

GIMP

GIMP,即 GNU Image Manipulation Package,是一个非常有用的光栅图形编辑器,很像 Adobe Photoshop。它很适于调节图像,或者创建您自己的新图片。查看本文的 参考资料 部分以查找关于 Gimp 和 Gimp 参考资料的链接。


图 1. 用 xview 显示的圆角
用 xview 显示的圆角

实际的角图像被叠加到一个图像上之后会变得更为清晰,所以让我们来继续做下去。我有一张以前在堪培拉的一个湖岸边拍摄的小图片。在没有圆角时,这张小图片看起来是这样的:


图 2. Burley Griffin 湖
湖风景

您可以使用 composite 命令将一个图像叠加到另一个图像上。让我们只叠加一个角,来看看发生了什么:

composite -gravity NorthEast rounded-ne.png lake.png lake-1.png

其中 gravity 参数定义了在图像何处放置叠加的图像 —— 在我们的示例中是圆角。这一特定的命令让我们得到了下面的图像:


图 3. 有一个圆角的 Burley Griffin 湖
湖风景

下面我们再来处理其他的角:

composite -gravity NorthEast rounded-ne.png lake.png lake-1.png
composite -gravity NorthWest rounded-nw.png lake-1.png lake-2.png
composite -gravity SouthEast rounded-se.png lake-2.png lake-3.png
composite -gravity SouthWest rounded-sw.png lake-3.png lake-4.png

这将带给我们最终的图像:


图 4. 圆角的 Burley Griffin 湖
湖风景

依我拙见,这看起来有一些酷。您还应该注意到,这些角图像不必是圆的。如果您对尖角或者类似的东西感兴趣,那些同样是可能的 —— 只需要在位图编辑器中改变角的图像。实际上,您甚至可以用您的徽标取代角来叠加到图像上。

如果您想使用我的圆角,可以访问在本文末尾参考资料部分列出的链接。

最后,下面是一个小脚本,让您可以将指定目录下的所有 png 图像的角变为圆角:

for img in *.png do composite -gravity NorthEast rounded-ne.png $img.png $img-1.png
composite -gravity NorthWest rounded-nw.png $img-1.png $img-2.png
composite -gravity SouthEast rounded-se.png $img-2.png $img-3.png
composite -gravity SouthWest rounded-sw.png $img-3.png $img-4.png
done

为图像添加边框

有一些读者提出的另一个问题是如何给图像添加边框。同样,通过 ImageMagick 可以轻松完成。

凸边或凹边

我将要介绍的第一类边框是凸边或凹边。这个效果是通过调节图像边缘的颜色而实现的,看起会感觉图像像是从周围表面凸起或者凹下。为实现这个效果,您需要指定一个尺寸,首先是水平尺寸,然后是垂直尺寸。这些尺寸的大小必须满足这样一个规则,尺寸的二倍必须小于或等于在那个方向上图像的尺寸大小。例如,您不可以指定边框垂直尺寸大于图像垂直尺寸的一半 —— 其实这主要是说您不可以制作一个比原图还要大的边框。

使用 -raise 命令行参数来创建凸边。例如,为创建一个 5 像素乘 5 像素的边,我们执行:

convert -raise 5x5 tree.png tree-raised.png

这将给出最终的图像:


图 5. 带有凸边的图像
带有凸边的水边的一些树

只需要将命令行参数换为 +raise 就可以创建一个凹边。例如:

convert +raise 5x5 tree.png tree-lowered.png

这将得到一个稍有不同的图像:


图 6. 带有凹边的图像
带有凹边的水边的一些树

一个简单的纯色边

如果您喜欢稍微简洁一些的风格,您可能对纯色的边感兴趣。ImageMagick 同样可以为您完成这一任务。

convert -bordercolor red -border 5x5 flower.png flower-border.png

这将创建:


图 7. 带有红边的图像
带有红边的一些花

我们可以在命令行中为边指定哪些颜色?是这样,这个列表太长了以至于在本文中无法给出。执行下面这个命令可以得到列表的一个拷贝:

convert -list color
Linux联盟收集整理

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2007-2-15 1:39:22
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:itqoo    责任编辑:itqoo 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持