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

canvas练手项目(三)——Canvas中的Text文本的更多相关文章

  1. canvas练手项目(一)——选取图片

    今天无事可做,在春意盎然的下午突发奇想想做一个关于图片处理的在线网页应用.不要问我为什么做这个,因为我想做!关于这个项目,我想基于canvas来实现,canvas是个好东西,我一直很喜欢,就是我没有做 ...

  2. canvas练手项目(二)——各种操作基础

    想想应该在canvas上面作画了,那么就不得不提到事件了. (打着canvas的旗号,写着mouse事件.挂羊头卖狗肉!哈哈哈哈哈~) 先来看一看HTML事件属性,我们要用的就是Mouse事件,就先研 ...

  3. webpack练手项目之easySlide(三):commonChunks(转)

    Hello,大家好. 在之前两篇文章中: webpack练手项目之easySlide(一):初探webpack webpack练手项目之easySlide(二):代码分割 与大家分享了webpack的 ...

  4. webpack练手项目之easySlide(三):commonChunks

    Hello,大家好. 在之前两篇文章中: webpack练手项目之easySlide(一):初探webpack webpack练手项目之easySlide(二):代码分割 与大家分享了webpack的 ...

  5. web前端学习部落22群分享给需要前端练手项目

    前端学习还是很有趣的,可以较快的上手然后自己开发一些好玩的项目来练手,网上也可以一抓一大把关于前端开发的小项目,可是还是有新手在学习的时候不知道可以做什么,以及怎么做,因此,就整理了一些前端项目教程, ...

  6. 微信小程序初体验,入门练手项目--通讯录,后台是阿里云服务器(一)

    内容: 一.前言 二.相关概念 三.开始工作 四.启动项目起来 五.项目结构 六.设计理念 七.路由 八.部署线上后端服务 同步交流学习社区: https://www.mwcxs.top/page/4 ...

  7. 练手项目之image caption问题记录

    小白一个,刚刚费了老大的劲完成一个练手项目--image caption,虽然跑通了,但是评估结果却惨不忍睹.于是贴上大神的作品,留待日后慢慢消化.顺便记录下自己踩坑的一些问题. 先膜拜下大神的作品. ...

  8. webpack练手项目之easySlide(二):代码分割(转)

    在上一篇 webpack练手项目之easySlide(一):初探webpack  中我们一起为大家介绍了webpack的基本用法,使用webpack对前端代码进行模块化打包. 但是乍一看webpack ...

  9. Python之路【第二十四篇】:Python学习路径及练手项目合集

      Python学习路径及练手项目合集 Wayne Shi· 2 个月前 参照:https://zhuanlan.zhihu.com/p/23561159 更多文章欢迎关注专栏:学习编程. 本系列Py ...

随机推荐

  1. java struts jxl 导入导出Excel(无模板)

    jar包: import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.io.Fil ...

  2. asp.net mvc 的 视图(view )的模块化开发

    目前所在项目有一个视图,几个模块都涉及到,对应不同的开发人员,虽然有SVN在管理,但代码冲突时有发生.并且大家的代码挤于其中,逻辑比较容易混乱. 将不同部件独立出去,实有必要. 分离方式,我知道的有 ...

  3. Java后端发出post请求带参数并接收返回的json

    核心代码: 参数格式: “key1=value1&key2=value2” /*** sendUrl    (远程请求的URL)* param    (远程请求参数)* JSONObject  ...

  4. 【bzoj4602】[Sdoi2016]齿轮

    dfs,连边,边权为比值,赋值搜索,遇到矛盾时退出 #include<algorithm> #include<iostream> #include<cstdlib> ...

  5. beego4---web项目结构

    app.conf appname = blog1 httpport = runmode = dev controllersmy package controllersmy //跟外面的包名一致 imp ...

  6. Unicode and .NET

    http://csharpindepth.com/Articles/General/Unicode.aspx Scope of this page This is a big topic. Don't ...

  7. iOS开发-多台机器共用证书问题

    今天又被证书的问题卡壳了: 在公司的电脑上申请的开发.发布证书,回家用自己的电脑从苹果开发者中心上将证书和配置文件都下载下来提示用不了,弄了很久才想起.p12文件,必须从申请证书的电脑上导出,导入到自 ...

  8. Bing必应地图中国API - 在地图上画圆

    Bing必应地图中国API - 在地图上画圆 2011-05-24 14:49:37|  分类: Bing&Google|字号 订阅     <变形金刚2>上映4日国内票房过亿,基 ...

  9. 【Dairy】2016.10.23 观火&中彩记

    ...................... 就第一条可以! 观火10分钟,长郡附近老房子起火...

  10. edittext 底线颜色

    <style name="Custom.Widget.EditView" parent="Widget.AppCompat.EditText" > ...