Javascript 如何在html画布上绘制字体图标[Version<;5]
我如何在html5画布上绘制令人敬畏的字体字符(图标图示符)?我使用的是旧版本的Font Awesome 我怎样才能给那些画出来的人物设计风格Javascript 如何在html画布上绘制字体图标[Version<;5],javascript,html5-canvas,font-awesome,Javascript,Html5 Canvas,Font Awesome,我如何在html5画布上绘制令人敬畏的字体字符(图标图示符)?我使用的是旧版本的Font Awesome 我怎样才能给那些画出来的人物设计风格 <script> var canvas = document.getElementById('myCanvas'); var context = canvas.getContext('2d'); context.font = ''; context.fillText(); </script>
<script>
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.font = '';
context.fillText();
</script>
var canvas=document.getElementById('myCanvas');
var context=canvas.getContext('2d');
context.font='';
context.fillText();
语言:lang html
<canvas id="myCanvas" class="canvas" width="500" height="500" ></canvas>html>
<script>
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.font = '';
context.fillText();
</script>
<canvas id="myCanvas" class="canvas" width="500" height="500" ></canvas>
html>
var canvas=document.getElementById('myCanvas');
var context=canvas.getContext('2d');
context.font='';
context.fillText();
语言:lang html
<canvas id="myCanvas" class="canvas" width="500" height="500" ></canvas>html>
<script>
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.font = '';
context.fillText();
</script>
<canvas id="myCanvas" class="canvas" width="500" height="500" ></canvas>
如何在html画布中使用字体图标(字体真棒)
您可以检查fontawsome.css文件并获取每个图标使用的代码
例如:如果您看到用于获取图标fa信息圈的代码文件,如下所示
.fa-info-circle:before {
content: "\f05a";
}
因此,请尝试context.font='\uf05a'
//这将为您提供fa信息圈
。并记住在代码之前添加\u
。您还需要将字体系列称为FontAWsome
以下是如何在html5画布上绘制字体和一些字形:
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
// set the canvas context's font-size and font-face
context.font='14px FontAwesome';
// specify the desired character code with the Unicode prefix (\u)
context.fillText('\uF047',20,50);
var canvas=document.getElementById(“canvas”);
var ctx=canvas.getContext(“2d”);
ctx.font='12px verdana';
ctx.fillText('请等待字体加载…',20,30);
//给字体加载时间
设置超时(开始,2000);
函数start(){
clearRect(0,0,canvas.width,canvas.height);
ctx.font='30px';
ctx.fillText('\uF047',20,50);
}
body{背景色:象牙;}
#画布{边框:1px纯红;边距:0自动;}
绘制在html5画布上的字体符号
我没有在css中设置字体。我刚刚向他展示了fontawsome.css文件中用于图标的css代码。他只需要在他的上下文中使用它,而且我在回答中提到了上下文.font
。你的问题是什么?我会+1,但你实际上需要在css中的任何元素(甚至在画布上)上设置字体族:fontAwesome
,这样浏览器就可以加载字体了。@kaido。实际上,不需要设置字体系列。使用canvas,您可以使用context.font加载一个或多个(!)自定义字体,以便与context.fillText一起使用,包括FontAwesome和其他自定义字体。演示可以很好地工作,无需将canvas元素提交到任何特定的字体系列,但它确实需要笨拙的setTimeout
来给自定义字体加载时间。是的,如果您只需要一种自定义字体,那么您可以将font-family='fontawesome'
添加到画布中。感谢您提及替代方案--我将在我的回答中添加您的评论!:-)最后一次编辑肯定有用!干得好。所以canvas会触发字体加载;正如我所想,在运行ctx.fillText之前,我从未等待过足够的时间。在这个问题之前,我确实读过一些关于它的链接:SOWSSquare也适合我。我需要做ctx.fillText(String.fromCharCode(“0xf03d”),20,75)为了让它工作,我必须使用ctx.font=“bold 20px‘font Awesome 5 Free’”。我从一个webjar获得了fa 5.8.1,它包含一个不粗体的字体文件,其中包含非常有限的图标子集。