HTML5 Canvas绘制文本及图片的基础教程

2019-01-28 22:08:48王冬梅

绘制文本

在HTML5中,我们还可以在Canvas「画布」上绘制我们所需的文本文字,其中所涉及到的CanvasRenderingContext2D对象的主要属性和方法如下:

属性或方法 基本描述
font 设置绘制文字所使用的字体,例如20px 宋体,默认值为10px sans-serif。该属性的用法与css font属性一致,例如italic bold 14px/30px Arial,宋体
fillStyle 用于设置画笔填充路径内部的颜色、渐变和模式。该属性的值可以是一个表示CSS颜色值的字符串。如果你的绘制需求比较复杂,该属性的值还可以是一个CanvasGradient对象或者CanvasPattern对象
strokeStyle 用于设置画笔绘制路径的颜色、渐变和模式。该属性的值可以是一个表示CSS颜色值的字符串。如果你的绘制需求比较复杂,该属性的值还可以是一个CanvasGradient对象或者CanvasPattern对象
fillText(string text, int x, int y[, int maxWidth]) 从指定坐标点位置开始绘制填充的文本文字。参数maxWidth是可选的,如果文本内容宽度超过该参数设置,则会自动按比例缩小字体以适应宽度。与本方法对应的样式设置属性为fillStyle
strokeText(string text, int x, int y[, int maxWidth]) 从指定坐标点位置开始绘制非填充的文本文字(文字内部是空心的)。参数maxWidth是可选的,如果文本内容宽度超过该参数设置,则会自动按比例缩小字体以适应宽度。该方法与fillText()用法一致,不过strokeText()绘制的文字内部是非填充(空心)的,fillText()绘制的文字是内部填充(实心)的。与本方法对应的样式设置属性为strokeStyle

从上面的API描述信息中我们可以得知,在Canvas中可以使用两种方式来绘制文本文字:一种是使用fillText()+fillStyle来绘制填充(实心)的文字;一种是使用strokeText()+strokeStyle绘制非填充(空心)的文字。

下面,我们先来看看如何使用canvas绘制实心文字,具体html代码如下:

JavaScript Code复制内容到剪贴板
  1. <!DOCTYPE html>    <html>   
  2. <head>    <meta charset="UTF-8">   
  3. <title>HTML5 Canvas绘制文本文字入门示例</title>    </head>   
  4. <body>      
  5. <!-- 添加canvas标签,并加上红色边框以便于在页面上查看 -->    <canvas id="myCanvas" width="400px" height="300px" style="border: 1px solid red;">   
  6. 您的浏览器不支持canvas标签。    </canvas>   
  7.    <script type="text/javascript">   
  8. //获取Canvas对象(画布)    var canvas = document.getElementById("myCanvas");   
  9. //简单地检测当前浏览器是否支持Canvas对象,以免在一些不支持html5的浏览器中提示语法错误    if(canvas.getContext){     
  10.     //获取对应的CanvasRenderingContext2D对象(画笔)        var ctx = canvas.getContext("2d");   
  11.             //设置字体样式   
  12.     ctx.font = "30px Courier New";        //设置字体填充颜色   
  13.     ctx.fillStyle = "blue";        //从坐标点(50,50)开始绘制文字   
  14.     ctx.fillText("CodePlayer+中文测试", 50, 50);    }   
  15. </script>    </body>   
  16. </html>