在canvas中繪製特殊符號,最簡單也最實用的方式就是使用 字符 ,以 fillText 的方式進行繪製。當然如果對特殊符號的樣式有特殊要求,使用圖片也是不錯的選擇。這裏只介紹字符繪製方式。
方案一:代碼中直接使用特殊字符
以win10系統為例,在代碼輸入過程中(切換為中文)可以點擊候選詞後面的笑臉圖標,打開特殊字符選擇面板:
在彈出面板中選擇你需要的特殊字符即可自動鍵入到代碼中:
下面以“無窮符號”為例:
代碼
<!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>