HTML5教程:用花哨的颜色、渐变和效果在画布上绘制文本
Simeon Visser是一位喜欢报道科技和旅游等话题的作家。
在本教程中,我将介绍在HTML5画布上绘制文本时可以使用的各种效果。其中一些效果将提醒您Microsoft Word中著名的艺术字效果!本教程以关于在HTML5画布上绘制的基础知识的另一篇教程.前一篇文章解释了HTML5代码的含义,并涵盖了HTML5画布的其他基础内容,如它的坐标系统。
在HTML5中,你可以通过添加阴影、彩色渐变和旋转文本来给文本添加一个奇特的外观。我们将练习每一个效果,如果你把它们结合起来,它会看起来很漂亮。
让我们从一个基本的空HTML5网页开始:
<超文本标记语言><头><元http等价=“内容类型”所容纳之物=“text/html;字符集=UTF-8”><标题>HTML5教程:文字绘制与花哨的颜色和效果标题>头><身体><帆布id=“mycanvas”宽度=“300”身高=“300”>帆布><脚本类型=“text / javascript”>var帆布=文件.getElementById (“我的画布”);varctx = canvas.getContext (“2d”);脚本>身体>超文本标记语言>
HTML5文本绘制的基础知识
您可以使用strokeText或fillText在画布上的特定位置绘制文本。与绘制形状一样,strokeText只绘制文本的轮廓,fillText也为文本的内部着色。这些命令有三个参数:文本本身、绘制文本的x坐标和y坐标。对于初学者来说,坐标大致是包围文本主要部分的框的左下角。您可以将它看作是绘制文本字符所在行的起始点。讨论这个问题本身就是一个主题,超出了本教程的范围。
我们可以使用上下文的字体属性指定字体:
ctx。字体=“粗体36px无衬线”;
这是用来绘制文本的字体的文字描述。你可以指定样式(粗体/斜体),大小(36px)和字体或字体族的名称(在本例中是无衬线字体族)。您可以通过名称指定字体(如Arial),但您也可以指定字体族,即一组字体。显示网页的计算机决定了它将从那个字体家族中选择哪一种。用户可以在网页浏览器的设置中更改字体。
例如,无衬线字体代表了一组无衬线字体。试着把它改成衬线字体或单行字体,看看你会得到什么字体!
ctx。字体=“粗体36px无衬线”;ctx.fillText (“HubPages”,10,One hundred.);
上面指定了字体,并在位置(10,100)填充了文本“HubPages”。很好,现在我们有一些文本在那里,但它还没有什么花哨的:它只是黑色的文本!像其他形状一样,你可以改变fillStyle来改变文本的颜色。把下面的行放在fillText命令之前会给你红色的文本:
ctx。fillStyle =rgb(255,0,0);
在HTML5画布上绘制带阴影的文本
添加阴影是一种使文本看起来更漂亮的简单方法。您需要指定阴影的颜色,并需要指示阴影相对于文本的位置(或任何其他形状,因为以下内容适用于在HTML5画布上绘制的任何图形)。
修改你的代码,让它看起来像这样:
ctx。字体=“粗体36px无衬线”;ctx。shadowColor =“rgb(190、190、190)”;ctx.shadowOffsetX=10;ctx.shadowOffsetY=10;ctx。fillStyle =rgb(255,0,0);ctx.fillText (“HubPages”,10,One hundred.);
如你所见,我们有shadowColor, shadowOffsetX和shadowOffsetY。阴影颜色是灰色的,但你也可以使用不同的颜色。shadowOffsetX和shadowOffsetY将阴影从文本下方移开。如果你让它们都保持在0,光就会从上面射来,你就看不到阴影了。这些偏移值(x和y的值都是10)意味着阴影沿着两个坐标轴(不一定是像素)向右和向下移动了10步。
但是,等等!阴影非常锐利-这不是很真实,因为阴影往往更模糊。幸运的是,我们可以通过给shadowBlur一个值来轻松改变这一点。该值越高,阴影将越模糊。
ctx。字体=“粗体36px无衬线”;ctx。shadowColor =“rgb(190、190、190)”;ctx.shadowOffsetX=10;ctx.shadowOffsetY=10;ctx。shadowBlur =10;ctx。fillStyle =rgb(255,0,0);ctx.fillText (“HubPages”,10,One hundred.);
这是一个很好的开始:我们有彩色文本和阴影。但我们可以做得更多。让我们引入渐变,这些可以让你的文本从普通变为新奇!
在HTML5画布上绘制渐变文本
您可以使用多种颜色来填充文本,而不是使用单一颜色。这叫做渐变,一种颜色逐渐流到另一种颜色。我们将使用一个线性梯度,它就是这样做的:我们指定两种颜色,所有中间的颜色都是自动计算的。这给了一个漂亮的彩色文本。
我们要添加一个从红色到黄色的渐变。只需将fillStyle的行替换为以下代码:
var梯度= ctx.createLinearGradient (0,0,150,One hundred.);gradient.addColorStop (0,rgb(255,0,0));gradient.addColorStop (1.,“rgb(255、255、0)”);ctx.fillStyle=渐变;
填充样式现在是渐变而不是颜色。我们通过调用绘图上下文的createLinearGradient来创建渐变。你需要给两个点,在这些点之间的梯度将被应用。我们使用起点(0,0)和终点(150100)。
然后,我们使用addColorStop指定颜色。第一个参数告诉我们颜色距离起点有多远。这是一个从0到1的值,其中0表示起点,1表示终点。因此,值0表示指定的颜色是起点,值0.5表示介于两者之间n坐标和1表示终点。我们给起点以红色,给终点以黄色。我们使用两种颜色作为渐变色,但如果需要,可以使用两种以上的颜色。
请注意,这些坐标与文本无关,如果您决定更改文本的位置,它可能看起来会有所不同,因为它将在该位置查找颜色信息。当您对fillStyle使用渐变时,您正在更改所有填充命令(fillText、fillRect等)的颜色因此,如果你的渐变和文本看起来不符合你的要求,你需要对它们的坐标进行调整。
现在真的开始看起来很漂亮了。我们还有一个技巧,那就是使用转换来旋转文本。
在HTML5画布上旋转文本
要旋转文本,只需添加rotate命令。参数是以弧度为单位的顺时针旋转角度,因此使用负值来逆时针旋转:
旋转(-0.25);
现在我们有了我们的最终结果:一个具有渐变、阴影和一点旋转的奇特文本!
更多使用HTML5的方法
- HTML5教程:绘制圆和弧
在HTML5中绘制圆圈和弧线是一个相当大的挑战。在本教程中,我将解释如何绘制圆和弧,以及如何测量弧的角度。本教程包含许多示例。
就作者所知,本文准确、真实。内容仅供参考或娱乐之用,不能替代商业、金融、法律或技术方面的个人顾问或专业建议。
评论
TRƯỜ吴博士从第六?2019年9月07日越南:
科特迪瓦ổ 酸碱度ầ徐振宁ấ新罕布什尔州ập khẩ乌梅斯ực phẩm Trường Phát Chuiên cung cấpác thiếTBị 斯尤斯ị, 这ếTBị lám bánh,thiếTBị thực phẩm、 蔡美儿ền sả徐振宁ất háng nhập khẩ吴清雄
陈迈2012年11月29日:
酸碱度ố我是máy sưở我是ố lượng lớN
http://vinastar.vn/c185/may-suoi.html
VINASTAR——Nha phan phố我可能văn冯氏,可以复印,可能从nghiệp,可能侬nghiệp,可能chấm琮、可能气ếu,男人气ếu,可能đ安giầy,可能见到tiền,đếm tiền。»
热线:0989 650 250 - 0165 654 9999
ramsha2012年10月14日:
干得好!!!我喜欢
工业技术2012年1月6日,印度新德里科蒂纳加尔拉玛路:
非常好的建议…谢谢
西蒙维瑟(作者)2011年1月7日:
@wavegirl22:我很高兴这些教程能有所帮助!如果我需要澄清一些事情,请发表评论。
莎丽2011年1月7日,纽约州纽约市:
超级神奇。我想我确实理解了一两件事。你的教程正是我一直在寻找的!!
西蒙维瑟(作者)2010年12月14日:
谢谢!当更多功能在网页浏览器中实现时,我甚至可能编写更多HTML5教程。它真的是网络的下一种语言,教程越多越好。
杰森Menayan2010年12月14日来自旧金山:
哇!真是太棒了,这是一个很容易理解的教程。