Javascript 如何在html画布上绘制字体图标[Version<;5]

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>

我如何在html5画布上绘制令人敬畏的字体字符(图标图示符)?我使用的是旧版本的Font Awesome

我怎样才能给那些画出来的人物设计风格

<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,它包含一个不粗体的字体文件,其中包含非常有限的图标子集。