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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM