canvas基础入门系列教程(7)-绘制文本

本文深入讲解了HTML5 Canvas API中的文本绘制方法,包括strokeText和fillText的使用,以及如何利用measureText方法实现文本居中。同时,文章还介绍了与文本绘制相关的属性,如font、textAlign和textBaseline的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5.绘制文本

5.1.strokeText方法

通过strokeText方法可以绘制描边的文本

// 语法
ctx.strokeText(text, x, y [, maxWidth]);

参数说明

text 使用当前 font,textAlign,textBaseline和direction 的值对文本进行渲染。
x 文本起始点的 x 轴坐标。
y 文本起始点的 y 轴坐标。
maxWidth 可选,需要绘制的最大宽度。如果指定了值,并且经过计算字符串的宽度比最大宽度还要宽,字体为了适应会使用一个水平缩小的字体(如果通过水平缩放当前的字体,可以进行有效的或者合理可读的处理)或者小号的字体

实例:

var oCanvas = document.getElementById('cvs')
var ctx = oCanvas.getContext('2d')
// 定义字体属性
ctx.font = "bold 80px 微软雅黑"
ctx.strokeText('螺钉课堂', 100, 100)

25658-lg8qycp08lf.png

5.2.fillText方法

和strokeText类似,fillText可以绘制填充文本

// 语法
ctx.fillText(text, x, y [, maxWidth])

参数和strokeText一样

实例:

var oCanvas = document.getElementById('cvs')
var ctx = oCanvas.getContext('2d')
// 定义字体属性
ctx.font = "bold 80px 微软雅黑"
ctx.fillText('螺钉课堂', 100, 100)

01622-3ym6z1ew5wf.png

5.3.measureText方法

方法返回一个 TextMetrics 对象,包含关于文本尺寸的信息(例如文本的宽度),配合这个方法使文本居中比较方便

ctx.measureText(text)

参数和返回值说明

参数:
text 需要测量的文本。
返回值:
TextMetrics 对象

实例:

var oCanvas = document.getElementById('cvs')
var ctx = oCanvas.getContext('2d')
var text = '螺钉课堂'
// 定义字体属性
ctx.font = "bold 80px 微软雅黑"
var position =  oCanvas.width / 2 - ctx.measureText(text).width / 2
ctx.strokeText(text, position, 100)

5.4.文本相关属性

1.font属性

font属性和css中的用法一样

// 语法
ctx.font = "font-style font-weight font-size/font-height font-family"

2.textAlign属性

textAlign用来设置水平方向的对齐方式

ctx.textAlign = '属性值'
这里的属性值可以为:
start  开始位置,指定坐标
end    结束位置,指定坐标
left   左对齐
right  右对齐
center 居中对齐

3.textBaseLine属性

textBaseLine用来设置垂直方向的对齐方式

// 语法
ctx.textBaseline = '属性值'
属性值有:
top 文本基线在文本块的顶部。
middle 文本基线在文本块的中间。
bottom 文本基线在文本块的底部。 与 ideographic 基线的区别在于 ideographic 基线不需要考虑下行字母。
alphabetic 文本基线是标准的字母基线。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大地飞鸿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值