Canvas文本

Canvas文本


文本

canvas 中依旧提供了两种方法来渲染文本,一种是描边一种是填充

描边文本

strokeText(text, x, y, maxWidth)

text:绘制的文案
x、y:文本的起始位置
maxWidth:可选参数,最大宽度。需要注意的是当文案大于最大宽度时不是裁剪或者换行,而是缩小字体

ctx.font = '20px console'
ctx.strokeText('canvas好啊', 100, 100, 160)

填充文本
fillText(text, x, y, maxWidth)

text:绘制的文案
x、y:文本的起始位置
maxWidth:可选参数,最大宽度。需要注意的是当文案大于最大宽度时不是裁剪或者换行,而是缩小字体

ctx.font = '20px console'
ctx.fillText('canvas好啊', 100, 100, 160)



文本样式

font
用于绘制文本的样式
默认的字体是 10px sans-serif。

textAlign
文本对齐的方式
可选值为:left、right、center、start和end。默认值是 start。

direction
文本的方向
可选值为:ltr(文本方向从左向右)、rtl(文本方向从右向左)、inherit(根据情况继承 Canvas元素或者 Document 。)。默认值是 inherit。

需要注意的是 direction 属性会对 textAlign 属性产生影响。
如果 direction 属性设置为 ltr,则textAlign属性的 left 和 start 的效果相同,right 和 end 的效果相同。
如果 direction 属性设置为 rtl,则 textAlign属性的 left 和 end 的效果相同,right 和 start 的效果相同。

	ctx.direction = 'rtl'
	ctx.textAlign = 'end' 

textBaseline
基线对齐选项,决定文字垂直方向的对齐方式
可选值为:top、hanging、middle、alphabetic、ideographic和bottom。默认值是 alphabetic。

ctx.textBaseline = 'bottom'

measureText
测量文本,返回一个 TextMetrics对象。

   ctx.fillText('canvas好啊', 400, 100, 200)
   const text = ctx.measureText('canvas好啊')
   console.log(text)
  • TextMetrics.width:基于当前上下文字体,计算内联字符串的宽度。
  • TextMetrics.actualBoundingBoxLeft:从 textAlign 属性确定的对齐点到文本矩形边界左侧的距离,使用 CSS 像素计算;正值表示文本矩形边界左侧在该对齐点的左侧。
  • TextMetrics.actualBoundingBoxRight:从 textAlign 属性确定的对齐点到文本矩形边界右侧的距离。
  • TextMetrics.fontBoundingBoxAscent:从 textBaseline 属性标明的水平线到渲染文本的所有字体的矩形最高边界顶部的距离。
  • TextMetrics.fontBoundingBoxDescent:从 textBaseline 属性标明的水平线到渲染文本的所有字体的矩形边界最底部的距离。
  • TextMetrics.actualBoundingBoxAscent:从 textBaseline 属性标明的水平线到渲染文本的矩形边界顶部的距离。
  • TextMetrics.actualBoundingBoxDescent:从 textBaseline 属性标明的水平线到渲染文本的矩形边界底部的距离。
  • TextMetrics.emHeightAscent:从 textBaseline 属性标明的水平线到线框中 em 方块顶部的距离。
  • TextMetrics.emHeightDescent:从 textBaseline 属性标明的水平线到线框中 em 方块底部的距离。
  • TextMetrics.hangingBaseline:从 textBaseline 属性标明的水平线到线框的 hanging 基线的距离。
  • TextMetrics.alphabeticBaseline:从 textBaseline 属性标明的水平线到线框的 alphabetic 基线的距离。
  • TextMetrics.ideographicBaseline:从 textBaseline 属性标明的水平线到线框的 ideographic 基线的距离。

阴影

shadowOffsetX、shadowOffsetY
用来设定阴影在 X 和 Y 轴的延伸距离,它们是不受变换矩阵所影响的。负值表示阴影会往上或左延伸,正值则表示会往下或右延伸,它们默认都为 0。

shadowBlur
用于设定阴影的模糊程度,其数值并不跟像素数量挂钩,也不受变换矩阵的影响,默认为 0。

shadowColor
是标准的 CSS 颜色值,用于设定阴影颜色效果,默认是全透明的黑色。

	ctx.shadowOffsetX = 10
	ctx.shadowOffsetY = 10
    ctx.shadowBlur = 5
    ctx.shadowColor = 'pink'
    ctx.fillText('canvas好啊', 400, 100, 200)
    ctx.fillRect(200, 200, 200, 50)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Raccom

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

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

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

打赏作者

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

抵扣说明:

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

余额充值