使用ImageMagick 的提示与技巧 一
2010-03-19 10:33
260 查看
没有什么能像命令行工具这样适合于处理大批量的任务,对于图像处理也不例外。Web 开发人员和管理员会喜欢轻松处理大量文件的能力,无论是使用命令行还是脚本。程序员 Michael Still 给出了更多关于 ImageMagick 套件的示例,这一次向您示范了如何将圆角、徽标或者边框和边添加到您的图像中,以及如何与多页文件格式 (包括 Adobe PDF 格式)进行转换。
去年我为 developerWorks 写了一篇关于在命令行中使用 ImageMagick 处理图像的文章。那篇文章得到了相当好的评价,此后我通过电子邮件收到了很多关于 ImageMagick 的问题。本文是对上一篇文章中讨论的技术的扩展,并且回答了那些我力所能及的问题。如果这是您在 IBM DeveloperWorks 发现的第一篇关于 ImageMagick 的文章,那么您最好先去阅读其第一篇文章(在 参考资料 部分可以找到它的链接)。
本文采用了根据示例来讨论特定问题的论述方法,但是那些概念同样适用于其他问题空间。这个方法和前一篇文章所采用的方法相同。这里讨论到的技术也可以和我们先前讨论的那些技术结合到一起使用。
应该注意的是,有很多方法可以完成本文中讨论的内容。我将只讨论我所使用的方法,并且知道这些方法适合我。这并不是说除此以外其他工具不好,而只是表示我喜欢我现在使用的工具。
圆角
如果您看一看 Mac OS/X,以及很多 Web 站点,那些图片有非常漂亮的圆角。您怎样才能用 ImageMagick 实现这一效果?好的,我们将展示一些使用 composite 命令来生成这种效果的灵活方法。
不过,在我们达到目的之前,让我们先谈一下我们将要运用的策略。如果您考虑一下,可以通过将一些标准预制的角叠加到原始图像上来***出具有圆角的图像。甚至不需要是圆的角 —— 我们可以用尖角,或者是更有趣的东西。
记住将角的多余部分设置为透明的。这一透明特性可以让我们要叠加角的图像仍可以显示出来。这可能会让人有些迷惑,因为有一些图像浏览器,比如 xview,将以黑色或者其他颜色来表示透明。
图 1. 用 xview 显示的圆角
![](http://linux.chinaitlab.com/UploadFiles_7565/200612/20061218094858925.jpg)
实际的角图像被叠加到一个图像上之后会变得更为清晰,所以让我们来继续做下去。我有一张以前在堪培拉的一个湖岸边拍摄的小图片。在没有圆角时,这张小图片看起来是这样的:
图 2. Burley Griffin 湖
![](http://linux.chinaitlab.com/UploadFiles_7565/200612/20061218094858387.jpg)
您可以使用 composite 命令将一个图像叠加到另一个图像上。让我们只叠加一个角,来看看发生了什么:
composite -gravity NorthEast rounded-ne.png lake.png lake-1.png
其中 gravity 参数定义了在图像何处放置叠加的图像 —— 在我们的示例中是圆角。这一特定的命令让我们得到了下面的图像:
图 3. 有一个圆角的 Burley Griffin 湖
![](http://linux.chinaitlab.com/UploadFiles_7565/200612/20061218094858628.jpg)
下面我们再来处理其他的角:
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 湖
![](http://linux.chinaitlab.com/UploadFiles_7565/200612/20061218094858966.jpg)
依我拙见,这看起来有一些酷。您还应该注意到,这些角图像不必是圆的。如果您对尖角或者类似的东西感兴趣,那些同样是可能的 —— 只需要在位图编辑器中改变角的图像。实际上,您甚至可以用您的徽标取代角来叠加到图像上。
如果您想使用我的圆角,可以访问在本文末尾参考资料部分列出的链接。
最后,下面是一个小脚本,让您可以将指定目录下的所有 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
去年我为 developerWorks 写了一篇关于在命令行中使用 ImageMagick 处理图像的文章。那篇文章得到了相当好的评价,此后我通过电子邮件收到了很多关于 ImageMagick 的问题。本文是对上一篇文章中讨论的技术的扩展,并且回答了那些我力所能及的问题。如果这是您在 IBM DeveloperWorks 发现的第一篇关于 ImageMagick 的文章,那么您最好先去阅读其第一篇文章(在 参考资料 部分可以找到它的链接)。
本文采用了根据示例来讨论特定问题的论述方法,但是那些概念同样适用于其他问题空间。这个方法和前一篇文章所采用的方法相同。这里讨论到的技术也可以和我们先前讨论的那些技术结合到一起使用。
应该注意的是,有很多方法可以完成本文中讨论的内容。我将只讨论我所使用的方法,并且知道这些方法适合我。这并不是说除此以外其他工具不好,而只是表示我喜欢我现在使用的工具。
圆角
如果您看一看 Mac OS/X,以及很多 Web 站点,那些图片有非常漂亮的圆角。您怎样才能用 ImageMagick 实现这一效果?好的,我们将展示一些使用 composite 命令来生成这种效果的灵活方法。
不过,在我们达到目的之前,让我们先谈一下我们将要运用的策略。如果您考虑一下,可以通过将一些标准预制的角叠加到原始图像上来***出具有圆角的图像。甚至不需要是圆的角 —— 我们可以用尖角,或者是更有趣的东西。
记住将角的多余部分设置为透明的。这一透明特性可以让我们要叠加角的图像仍可以显示出来。这可能会让人有些迷惑,因为有一些图像浏览器,比如 xview,将以黑色或者其他颜色来表示透明。
![]() |
|
![](http://linux.chinaitlab.com/UploadFiles_7565/200612/20061218094858925.jpg)
实际的角图像被叠加到一个图像上之后会变得更为清晰,所以让我们来继续做下去。我有一张以前在堪培拉的一个湖岸边拍摄的小图片。在没有圆角时,这张小图片看起来是这样的:
图 2. Burley Griffin 湖
![](http://linux.chinaitlab.com/UploadFiles_7565/200612/20061218094858387.jpg)
您可以使用 composite 命令将一个图像叠加到另一个图像上。让我们只叠加一个角,来看看发生了什么:
composite -gravity NorthEast rounded-ne.png lake.png lake-1.png
其中 gravity 参数定义了在图像何处放置叠加的图像 —— 在我们的示例中是圆角。这一特定的命令让我们得到了下面的图像:
图 3. 有一个圆角的 Burley Griffin 湖
![](http://linux.chinaitlab.com/UploadFiles_7565/200612/20061218094858628.jpg)
下面我们再来处理其他的角:
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 湖
![](http://linux.chinaitlab.com/UploadFiles_7565/200612/20061218094858966.jpg)
依我拙见,这看起来有一些酷。您还应该注意到,这些角图像不必是圆的。如果您对尖角或者类似的东西感兴趣,那些同样是可能的 —— 只需要在位图编辑器中改变角的图像。实际上,您甚至可以用您的徽标取代角来叠加到图像上。
如果您想使用我的圆角,可以访问在本文末尾参考资料部分列出的链接。
最后,下面是一个小脚本,让您可以将指定目录下的所有 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 的提示与技巧 四
- 使用ImageMagick 的提示与技巧
- 使用ImageMagick 的提示与技巧 二
- 使用ImageMagick 的提示与技巧 三
- [唐胡璐]QTP技巧 - QTP使用小提示
- webStore 使用技巧 <<node 开发 代码提示 >> 任何解决编辑node代码 像编写JavaScript代码一样智能提示!
- Xcode 5:一些使用提示和技巧
- ImageMagick的使用技巧
- 一些Xcode 5的使用提示和技巧
- myeclipse使用技巧总结(自动提示、格式化)
- Intellij IDEA使用技巧,去掉拼写检查和unused提示
- 一些Xcode 5的使用提示和技巧
- 针对 Exchange Server 管理员的 Windows Server 2003 系统监视器使用提示和技巧
- eclipse使用技巧之自动代码提示,也可以像VS一样哦!
- Outlook express 2010 使用技巧(配置账户 导出和导入联系人 创建规则和来信提示 创建快速步骤)
- MyEclipse 6.5 的一些使用技巧(输入提示)
- Visual Studio .NET使用技巧手册读书笔记之其他.NET提示与技巧
- 一些Xcode 5的使用提示和技巧
- 一些Xcode 5的使用提示和技巧
- [唐胡璐]QTP技巧 - QTP使用小提示