Canvas——文字绘制

文字绘制

画笔.font = "字体大小 字体"
画笔.fillText =(文字内容,x1 ,y1, w) :x1,y1: 内容的起点; w:内容所占据的最大宽度,超出该宽度会进行压缩
画笔.strokeText = (文字内容,x1 ,y1, w):和fillText的参数一样

eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!--  -->
    <canvas
    id = "canvas1"
    width="1000"
    height="600"
    style="background: lightgray"
    ></canvas>
    <script>
        // 找到画布
        var canvas1 = document.getElementById("canvas1")
        var ctx = canvas1.getContext("2d")

        ctx.font = "100px Microsoft YaHei"
        ctx.fillText("洋", 200, 200, 100)
        ctx.strokeText("洋", 300, 200, 100)
    </script>
</body>
</html>

在这里插入图片描述

文字样式

  • 水平对齐:画笔.textAlign = 对齐方式,对齐方式: "center"、"start"(默认)、"end"、"left"、"right"
    注意这里对齐的参照是通过strokeText("文字",x1,y1)函数设置的定点(x1,y1)

eg:center样式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!--  -->
    <canvas
    id = "canvas1"
    width="1000"
    height="600"
    style="background: lightgray"
    ></canvas>
    <script>
        // 找到画布
        var canvas1 = document.getElementById("canvas1")
        var ctx = canvas1.getContext("2d")

        ctx.font = "100px Microsoft YaHei"
        ctx.textAlign = "center"
        ctx.strokeText("yang", 300, 300)

        ctx.arc(300,300,5,0,2*Math.PI)
        ctx.fillStyle = "red"
        ctx.fill()
    </script>
</body>
</html>

在这里插入图片描述

  • 基线对齐:画笔.textBaseline= 对齐方式,对齐方式: "top"、"bottom"、"middle"、"alphabetic"(文本基线对齐,默认)
  • 文本方向:画笔.direction = 方向, 方向:"ltr"(从左到右)、"rtl"(从右到左)

文本宽度

预测量文本宽度:
画笔.measureText("文字")
eg:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!--  -->
    <canvas
    id = "canvas1"
    width="1000"
    height="600"
    style="background: lightgray"
    ></canvas>
    <script>
        // 找到画布
        var canvas1 = document.getElementById("canvas1")
        var ctx = canvas1.getContext("2d")

        ctx.font = "100px Microsoft YaHei"
        ctx.textAlign = "center"
        ctx.textBaseline = "middle"
        ctx.direction = "rtl"
        ctx.strokeText("yang", 300, 300)

        // 预测量文本宽度
        const msg = ctx.measureText("yang")
        console.log(msg);

        ctx.arc(300,300,5,0,2*Math.PI)
        ctx.fillStyle = "red"
        ctx.fill()
    </script>
</body>
</html>

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/mantou_riji/article/details/128687172