zoukankan      html  css  js  c++  java
  • 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("你需要测量长度的字符串")
    //那么大家要有疑问了,字体的高度呢?高度该怎么算呢?
    //我认为和字体的大小一样就可以了,就是字体18px,那么高度也差不多18px。
    

    延伸阅读:
    关于em square的——EM Square

  • 相关阅读:
    可恶的0x1A
    求关注 wcf bindipendpointdelegate 端口限制的功能
    2015 UESTC Training for Data Structures
    Codeforces Round #298 (Div. 2)
    利用rawcap抓包(自己发给自己的包裹)
    PYTHON POST练手
    CentOS安装Nginx 实现HTTP代理
    how to make vim show ^M and substitute it
    Oracle SQL Developer: cannot find a j2se sdk
    Codeforces Round #282 (Div. 2)
  • 原文地址:https://www.cnblogs.com/cherryvenus/p/8583001.html
Copyright © 2011-2022 走看看