绘制文本

绘制矩形的相关方法共有三种:

fillText()

CanvasRenderingContext2D.fillText() 用以在 (x, y) 位置绘制填充文本的方法。

语法

void ctx.fillText(text, x, y [, maxWidth]);
参数说明类型
text绘制的文本值string
x绘制文本的横坐标number
y绘制文本的纵坐标number
maxWidth绘制的最大宽度, 如果指定了值,并且经过计算字符串的值比最大宽度还要宽,字体为了适应会水平缩放(如果通过水平缩放当前字体,可以进行有效的或者合理可读的处理)或者使用小号的字体。number

⚠️ 如果选项的第四个参数提供了最大宽度,文本会进行缩放以适应最大宽度。

示例

<canvas id="canvas"></canvas>
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
ctx.font = '48px serif';
ctx.fillText('Hello world', 50, 100);

strokeText()

CanvasRenderingContext2D.stokeText() 用以在 (x, y) 位置绘制无填充文本的方法。

语法

void ctx.stokeText(text, x, y [, maxWidth]);
参数说明类型
text绘制的文本值string
x绘制文本的横坐标number
y绘制文本的纵坐标number
maxWidth绘制的最大宽度, 如果指定了值,并且经过计算字符串的值比最大宽度还要宽,字体为了适应会水平缩放(如果通过水平缩放当前字体,可以进行有效的或者合理可读的处理)或者使用小号的字体。number

⚠️ 如果选项的第四个参数提供了最大宽度,文本会进行缩放以适应最大宽度。

示例

<canvas id="canvas"></canvas>
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
ctx.font = '48px serif';
ctx.stokeText('Hello world', 50, 100);

measureText()

CanvasRenderingContext2D.measureText 方法用以获取一个包含文本尺寸信息的 TextMetrics 对象。

语法

void ctx.measureText(text);
属性说明类型
text需要测量的文本string

示例

<canvas id="canvas"></canvas>
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');
var text = ctx.measureText('foo'); // TextMetrics object
text.width; // 16