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("你需要测量长度的字符串")
//那么大家要有疑问了,字体的高度呢?高度该怎么算呢?
//我认为和字体的大小一样就可以了,就是字体18px,那么高度也差不多18px。
延伸阅读:
关于em square的——EM Square