canvas练手项目——Canvas中的Text文本

Posted cherryvenus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了canvas练手项目——Canvas中的Text文本相关的知识,希望对你有一定的参考价值。

Canvas中的Text文本也是一个知识点~,我们需要掌握一下几个基本的Text操作方法

首先是重要参数textAlign和textBaseline:

textAlign

  • left
  • center
  • right
  • start (default)
  • end

textBaseline

  • alphabetic (default)【适合Latin文字类,“abc”】
  • hanging【适合一些印地语,“?????”】
  • ideographic【适合中文之类的,“哈哈哈”】
  • top
  • middle
  • bottom

前三个是根据字体来说的比较合适的选择,而后面三个就是给予em square而定的。

em square 就是方格字的意思,每个字体,比如微软雅黑,都有自己的方格大小,top就是方格的头部,bottom就是方格的底部,但是不可能每个字都撑满一个方格的,所以top,bottom总是会留一些空白的。

给大家一个直观的感受 点击

接着是写字的方法fillText和strokeText

实心字体

context.fillText(“你的字符穿”, X轴坐标,  Y轴坐标, MaxWidth)//超过MaxWidth,文字就会被压缩

镂空字体

context.strokeText(“你的字符穿”, X轴坐标,  Y轴坐标, MaxWidth)//超过MaxWidth,文字就会被压缩,就感觉字被压扁的感觉,哈哈哈哈
//如何优雅地在canvas上写字
context.font="18px 微软雅黑"//和css中的font一样,不过没有了行高
context.textAlign=“center”//和css中的text-align一样
context.textBaseline=“top”//这个是文本基线的意思
context.fillStyle = ‘red‘;//你的字体颜色
context.fillText(“你的字符穿”, X轴坐标,  Y轴坐标, MaxWidth)//超过MaxWidth,文字就会被压缩
//通过以上面设置的字体参数,可以用以下方法得出字体的长度
context.measureText("你需要测量长度的字符串")
//那么大家要有疑问了,字体的高度呢?行高该怎么算呢?

以上是关于canvas练手项目——Canvas中的Text文本的主要内容,如果未能解决你的问题,请参考以下文章

5个前端练手项目(html css js canvas)

canvas写字

通过Canvas + JS 实现简易时钟实战

使用 typescript 和 canvas 重构snow效果

canvas生成表单海报

微信小程序canvas生成的二维码text需要放啥参数