Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->桌面应用 ->正文

使用ImageMagick 的提示与技巧

来源:IBM DW中国 作者:Michael Still  时间:2007-04-22 点击: [收藏] [投稿]

使用 -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

从桔黄色到原木色,从玉米色到贝壳白,有 683 种“基本”颜色可以选择 —— 更不用说您还可以使用以下方法来指定您自己的颜色了,这里 R 表示红色值,G 表示绿色值,B 表示蓝色值,A 是 alpha(透明度)值:

  • #RGB - (R,G,B 是十六进制数,每个 4 位)
  • #RRGGBB - (每个 8 位)
  • #RRRGGGBBB - (每个 12 位)
  • #RRRRGGGGBBBB - (每个 16 位)
  • #RGBA - (每个 4 位)
  • #RRGGBBAA - (每个 8 位)
  • #RRRGGGBBBAAA - (每个 12 位)
  • #RRRRGGGGBBBBAAAA - (每个 16 位)
  • rgb(r,g,b) - (r,g,b 是十进制数)
  • rgba(r,g,b,a) - (r,g,b,a 是十进制数)

构建一个更复杂的边框

接下来让我们用 -frame 命令行参数构建一个更为复杂的边框。首先我们将添加一个和前面的示例中构建的边相同(只是颜色不同)的边框。

convert -mattecolor black -frame 5x5 beach.png beach-frame.png

用参数 -mattcolor-frame 替换了 -bordercolor-border,不过其余部分与 border 命令相同。


图 8. 简单的黑色边
有简单黑色边框的海滩图片

现在我们可以做一些更复杂的事情,添加一些类似于用 -raise 命令得到的阴影。

convert -mattecolor black -frame 5x5+2 beach.png beach-frame2.png

现在是这样了:


图 9. 同一张图片,不过有一些更多的修饰
带有稍复杂的边的海滩图片

最后,我们可以添加一些更多的修饰,以达到我期望的最终效果:

convert -mattecolor black -frame 5x5+2+2 beach.png beach-frame3.png

最后我们得到:


图 10. 完成的边框
带有已完成边框的海滩图片

如果您正在寻找为您的图像制作漂亮的边框的方法,那么我建议您花一些时间来研究 -frame 命令的参数。例如,这里有一些有趣的边框,加在了澳大利亚 King’s Canyon 的岩石图片上。

要深入了解可用的各种不同边框,请参考 convert 的手册页。

convert -mattecolor gray -frame 25x25+0+25 rock.png rock-frame1.png

convert -mattecolor gray -frame 25x25+25+0 rock.png rock-frame2.png


图 11. 两个边框
两张有漂亮边框的岩石图片

同时处理多个图像

在我的上一篇文章中,我已经给出了同时转换多个图像的代码。正如一些人所指出的,我给出的代码并不是最好的方法。

下面是我以前给出的代码:

清单 1. 生成当前目录下所有 JPEG 图片的缩略图


for img in `ls *.jpg`
do
  convert -sample 25%x25% $img thumb-$img
done

现在已经证明这是不好的 bash 风格,因为它没有很好地处理文件名中的空格(每个词将被认为是一个单独的文件名)。取而代之,一个更好的方法是:

清单 2. 生成当前目录下所有 JPEG 图片的缩略图,具有更好的 bash 风格


for img in *.jpg
do
  convert -sample 25%x25% $img thumb-$img
done

这将更好地处理文件名中的空格。

不过,结果证明这两个方案 ImageMagick 都不需要 —— 我们可以只使用 mogrify 命令。 mogrify 命令用于转换一系列文件(虽然它同样可以处理单一的图像)。

前面的代码片断将变成:

mogrify -sample 25%x25% *.jpg

注意,这将会导致原始图像被新图像所覆盖。很难指定输出文件名,这是 mogrify 的局限性之一。 指定输出文件名的惟一的方法是,改变输出文件相对于输入文件的格式。这样的结果是新的图像具有了不同的扩展名。例如:

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:在Linux上烧录CD   下一篇:Firefox 快捷键大全(2.0版)

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号