博客 / 詳情

返回

JS技巧 - Canvas中繪製特殊字符

在canvas中繪製特殊符號,最簡單也最實用的方式就是使用 字符 ,以 fillText 的方式進行繪製。當然如果對特殊符號的樣式有特殊要求,使用圖片也是不錯的選擇。這裏只介紹字符繪製方式。

方案一:代碼中直接使用特殊字符

以win10系統為例,在代碼輸入過程中(切換為中文)可以點擊候選詞後面的笑臉圖標,打開特殊字符選擇面板:

image.png

在彈出面板中選擇你需要的特殊字符即可自動鍵入到代碼中:
image.png

下面以“無窮符號”為例:

代碼

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>HTML5 canvas 繪製特殊字符</title>
    <style type="text/css">
    canvas {
        border: 1px solid #ccc;
    }
    </style>
</head>
<body>
    <canvas id="myCanvas" width="500" height="500"></canvas>
    <script type="text/javascript">
    // 獲得 canvas.context
    var canvas = document.getElementById("myCanvas");
    var context = canvas.getContext("2d");
    
    // 文字樣式
    context.fillStyle = '#1ABFFF';
    context.font = '120px "微軟雅黑"';
    
    // 繪製文字
    context.fillText('∞', 200, 200);
    </script>
</body>

</html>

方案二:使用Unicode碼

查詢所需特殊字符的Unicode代碼,如“無窮符號”的Unicode碼為\u221e,在代碼中定義為 '\\u221e' ,然後使用 eval 函數進行解析,注意解析時,Unicode碼必須在外部加一層引號。

Unicode編碼轉換-站長工具

代碼

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8">
    <title>HTML5 canvas 繪製特殊字符</title>
    <style type="text/css">
    canvas {
        border: 1px solid #ccc;
    }
    </style>
</head>

<body>
    <canvas id="myCanvas" width="500" height="500"></canvas>
    <script type="text/javascript">
    // 獲得 canvas.context
    var canvas = document.getElementById("myCanvas");
    var context = canvas.getContext("2d");
    
    // 文字樣式
    context.fillStyle = '#1ABFFF';
    context.font = '120px "微軟雅黑"';

    // 繪製文字
    var infinCode = "\\u221e";
    context.fillText(eval('"' + infinCode + '"'), 200, 200);
    </script>
</body>

</html>

最終效果

image.png

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.