canvas strokeText() 文本描边

2018-11-3 09:51| 作者: admin| 查看: 2327| 评论: 0|来自: 蚂蚁部落

此方法可以在指定位置绘制具有描边的文本。

stroke是描边的意思,text则是文本的意思,方法功能的确名副其实。

可以结合canvas fillText()一章节。

语法结构:

[JavaScript] 纯文本查看 复制代码
context.strokeText(text,x,y,maxWidth);

参数解析:

(1).text:必需,规定要绘制的文本内容。

(2).x:必需,规定文本绘制开始位置x轴坐标。

(3).y:必需,规定文本绘制开始位置y轴坐标。

(4).maxWidth:可选,规定文本绘制区域的宽度。

浏览器兼容:

(1).IE9+浏览器支持此方法。

(2).edge浏览器支持此方法。

(3).谷歌浏览器支持此方法。

(4).火狐浏览器支持此方法。

(5).Opera浏览器支持此方法。

(6).Safari浏览器支持此方法。

代码实例如下:

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>  
<html>  
<head>  
<meta charset=" utf-8">  
<meta name="author" content="http://www.softwhy.com/" />  
<title>蚂蚁部落</title>
<style>
canvas{
  border:1px solid #d3d3d3;
}
</style> 
<script>
window.onload=function(){
  let canvas=document.getElementById("ant");
  let ctx=canvas.getContext("2d");

  ctx.font="40px Georgia";
  ctx.strokeText("蚂蚁部落",10,50);
}
</script>
</head>
<body>
<canvas id="ant" width="380" height="150"></canvas>
</body>
</html>

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201811/03/095307aqzq2a3ioaze4lt4.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

代码分析如下:

(1).被绘制的"蚂蚁部落"文本是由strokeText方法的第一个参数规定。

(2).文本绘制的位置有strokeText方法的第二个和第三个参数规定。

可以看到文本是镂空的,也就是只有描边没有填充,当然我们也可以对其进行填充。

具体实现方式可以参阅canvas 填充描边文本一章节。

默认状态下,描边的颜色是#000000,当然也可以进行修饰。

代码实例如下:

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>  
<html>  
<head>  
<meta charset=" utf-8">  
<meta name="author" content="http://www.softwhy.com/" />  
<title>蚂蚁部落</title>
<style>
canvas{
  border:1px solid #d3d3d3;
}
</style> 
<script>
window.onload=function(){
  let canvas=document.getElementById("ant");
  let ctx=canvas.getContext("2d");

  ctx.font="40px Georgia";
  ctx.strokeStyle="red";
  ctx.lineWidth="2"
  ctx.strokeText("蚂蚁部落",10,50);
}
</script>
</head>
<body>
<canvas id="ant" width="380" height="150"></canvas>
</body>
</html>

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201811/03/095356na4fkxfaima1mkwb.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

上述代码对文本的描边进行了修饰操作。

(1).通过lineWidth属性设置描边的粗细。

(2).strokeStyle属性设置描边的样式。

关于lineWidth属性的基本用法可以参阅canvas lineWidth绘制原理一章节。

strokeStyle属性不仅仅可以设置颜色,属性值也可以是渐变或者图案模式。

看一段代码实例:

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>  
<html>  
<head>  
<meta charset=" utf-8">  
<meta name="author" content="http://www.softwhy.com/" />  
<title>蚂蚁部落</title>
<style>
canvas{
  border:1px solid #d3d3d3;
}
</style> 
<script>
window.onload=function(){
  let canvas=document.getElementById("ant");
  let ctx=canvas.getContext("2d");

  ctx.font="40px Georgia";
  let gradient=ctx.createLinearGradient(0,0,canvas.width,0);
  gradient.addColorStop("0","magenta");
  gradient.addColorStop("0.5","blue");
  gradient.addColorStop("1.0","red");
  ctx.strokeStyle=gradient;
  ctx.lineWidth="2"
  ctx.strokeText("蚂蚁部落",10,50);
}
</script>
</head>
<body>
<canvas id="ant" width="380" height="150"></canvas>
</body>
</html>

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201811/03/095443vlfm5qgrmdnnjlm6.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

可以看到文本描边具有线性渐变效果。

maxWidth参数:

也就是strokeText方法的最后一个参数。

它用来规定文本显示范围的,如果没有此参数,那文本具有广阔的天地。

如果规定此参数,那么文本只能在此参数规定的宽度内显示,如果文本宽度超过maxWidth,那么文本会进行瘦身操作,也就是在水平方向挤压或者缩小字号以适应宽度。

代码实例如下:

[HTML] 纯文本查看 复制代码运行代码
<!DOCTYPE html>  
<html>  
<head>  
<meta charset=" utf-8">  
<meta name="author" content="http://www.softwhy.com/" />  
<title>蚂蚁部落</title>
<style>
canvas{
  border:1px solid #d3d3d3;
}
</style> 
<script>
window.onload=function(){
  let canvas=document.getElementById("ant");
  let ctx=canvas.getContext("2d");

  ctx.font="40px Georgia";
  let gradient=ctx.createLinearGradient(0,0,canvas.width,0);
  gradient.addColorStop("0","magenta");
  gradient.addColorStop("0.5","blue");
  gradient.addColorStop("1.0","red");
  ctx.strokeStyle=gradient;
  ctx.lineWidth="2"
  ctx.strokeText("蚂蚁部落",10,50,60);
}
</script>
</head>
<body>
<canvas id="ant" width="380" height="150"></canvas>
</body>
</html>

代码运行效果截图如下:

a:3:{s:3:\"pic\";s:43:\"portal/201811/03/095522nw9gpj9jidnpn8li.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

是不是这样就很容易理解了。


鲜花

握手

雷人

路过

鸡蛋
返回顶部