ImageMagick中文使用手册——复合字体效果

绘制文本仅仅是ImageMagick神奇之旅的开始。在这里,我们一起来看看IM最基本的文本绘图操作,包括创建花哨的字体和特效,然后你就可以在你的网页和文件中使用了。
     
复合字体效果
     用朴素简单的文本来作为图像是非常无趣的,但是通过很少的工作对文本进行覆盖和染色,就可以产生一些很漂亮和奇妙的效果。
     想要做到这一点,我们需要对文本进行多次绘制操作、覆盖不同的颜色、进行拼接、并从大量图像处理选项中找到一些合适的方法来处理文本,让它们产生更加丰富有趣的特效,而不是原来纯粹的枯燥的文字。
     请注意,不仅仅包括我们对文本使用的字体,还有其它那些大量的处理操作很多都可以用于其它图像之中。特别是,你可以将它们用于剪贴画图像的处理。
     平铺字体:你并不会被限制只能使用一个固定的颜色来绘制字体。而可以在字体中使用的平铺拼接图案。
        convert -size 320x100 xc:lightblue -font Candice -pointsize 72 \
                -tile pattern:checkerboard   -annotate +28+68 'Anthony' \
                font_tile.jpg
wordPic1.gif 
     请注意,上面命令中的-tile设置会覆盖任何-draw选项中-fill设置的颜色。
wordPic2.gif 如果使用的IM v6.3.2版本,那么也可以使用-fill设置来指定一张平铺图像,但是这种用法并不推荐使用,因为许多其它选项会用到-fill设置中的颜色,但它们并不支持平铺图像,这时就会使用默认的“黑色”来代替。
     平铺图像也可以相对于图像背景的原点进行偏移,只用在图像的-tile选项前指定-origin设置就可以实现。这样平铺图像就会按照指定的偏移量在平铺拼接时进行偏移了。
     梯度渐变字体:平铺拼接操作不只是用于小的那部分区域,而且可以用于整个画布尺寸的区域。
        convert -size 320x100 xc:lightblue -font Candice -pointsize 72 \
                -tile gradient:   -annotate +28+68 'Anthony' \
                font_gradient.jpg
wordPic3.gif 
     倒转的字体: 
        convert -size 320x100 xc:lightblue -font Candice -pointsize 72 \
                -fill Navy     -annotate 180x180+300+35 'Anthony' \
                font_upsidedown.jpg
wordPic4.gif 
     实心阴影:对文本进行两次绘制操作,并且加入一定的偏移量,你就可以生产最简单的实心阴影边缘效果了。
        convert -size 320x100 xc:lightblue -font Candice -pointsize 72 \
                -fill black -draw "text 28,68 'Anthony'" \
                -fill white -draw "text 25,65 'Anthony'" \
                font_shadow.jpg
wordPic5.gif 
     倾斜的阴影:因为注释(-annotate)字体绘制选项可以在垂直维度和水平维度上分别进行选择操作,所以你就可以为字体指定一些奇怪的旋转方式,如“回转”或“倾斜”等。这为我们生成怪异奇妙的阴影或使自己的字体变为斜体或倾斜状态提供了极大的方便。
        convert -size 320x115 xc:lightblue  -font Candice -pointsize 72 \
                -fill Navy      -annotate 0x0+12+55   'Anthony' \
                -fill RoyalBlue -annotate 0x130+25+80 'Anthony' \
                font_slewed.jpg
wordPic6.gif 
     可以参考一张表格,其中总结了文本旋转的效果,见Annotate Text Option。
     当然“Candice”字体并不是最适合这种阴影效果的方案,我们可能还需要添加其它一些细节效果来使结果看起来更加具有3D图像的感觉。例如你可以参考Blurring the shadow with distance。
     倾斜字体:你还可以使用-draw选项来实现字体倾斜,虽然这种方法有点麻烦,因为它涉及到额外的MVG(Magick矢量图形)的操作,要将绘制图像的表面进行扭曲。因为表面要被扭曲,那么我们在扭曲之前使用“translate”来设置字体的位置将会是个好主意。
        convert -size 320x100 xc:lightblue  -font Candice -pointsize 72 \
                -fill Navy -draw "translate 28,68  skewX -20  text 0,0 'Anthony'" \
                font_slanted.jpg
wordPic7.gif 
     可以参考一张表格,其中总结了文本旋转的效果,见Annotate Text Option。
     当然“Candice”字体并不是最适合这种阴影效果的方案,我们可能还需要添加其它一些细节效果来使结果看起来更加具有3D图像的感觉。如果你发现了其它有趣的效果,那么请告诉我们,这样就可以与世界其它的爱好者一同分享你的成果了。
wordPic8.gif “-annotate”和“-draw skew”命令实际上都可以完成绘图表面X和Y轴的旋转操作。并且效果和在现有的图像上使用“-shear”选项不同,它们会延长图像的倾斜轴,所以使用这些选项不会导致图像的高度(或宽度)发生改变。
     印版字体:对字体进行三次绘制操作,分别用较深的颜色、较浅的颜色和原来的颜色,就可以实现印版一样的三维效果。 
        convert -size 320x100 xc:lightblue -font Candice -pointsize 72 \
                -fill black     -annotate +24+64 'Anthony' \
                -fill white     -annotate +26+66 'Anthony' \
                -fill lightblue -annotate +25+65 'Anthony' \
                font_stamp.jpg

     请注意最后一步文本绘制操作是如何将字体的中间部分删除的。另外,这种方法只能在纯色背景中晚餐,请参阅Using a Mask Image,看看我们如何在随机的背景下完成这种效果,而不是纯色背景。
     如果你交换两种颜色的位置,就可以得到一个向上凸出的字体效果,而不是一个向下凹陷的字体效果。
     堆叠或三维块字体:可以通过重复多次进行字体绘制并加入偏移量来生成。
        convert -size 320x100 xc:lightblue -font Candice -pointsize 72 \
                -fill gray -annotate +29+69 'Anthony' \
                           -annotate +28+68 'Anthony' \
                           -annotate +27+67 'Anthony' \
                           -annotate +26+66 'Anthony' \
                           -annotate +25+65 'Anthony' \
                           -annotate +24+64 'Anthony' \
                -fill navy -annotate +23+63 'Anthony' \
                font_extrude.jpg
wordPic10.gif 
     请注意,这不是一个简单的阴影效果,而是让绘制的字体呈现出适当的厚度。
     这种方法就是不断的重复绘制,并且不仅可以对文本使用,还可以用于任何具有形状的图像。你还可以参考另一个例子Adding Thickness to a Thumbnail。
     轮廓字体:我们可以对多个绘制的文本使用小位置的偏移量,来创建文本字体的轮廓效果。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值