javascript - 如何更改 Canvas 文本的字体大小

标签 javascript canvas

我的 Canvas 加载屏幕上有文本,但它太小了。我不知何故找不到任何有关更改它的正确语法的资源。

我尝试过:

// examples of what i've tried

canvasContext.font(40); 
canvasContext.font(40 + 'px'); 
canvasContext.fontSize(40); 
canvasContext.fontSize(40 + 'px'); 
canvasContext.font = 40; 
canvasContext.font = 40 + 'px'; 
canvasContext.fontSize = 40; 
canvasContext.fontSize = 40 + 'px';

-

//my actual code

window.onload = function () {
    canvas = document.getElementById('gameCanvas');
    canvasContext = canvas.getContext('2d');
}

function colorText(showWords, textX, textY, fillColor, fontSize) {

    //this works -----
    canvasContext.fillStyle = fillColor;
    canvasContext.fillText(showWords, textX, textY);

    //this doesn't ------
    canvasContext.fontSize = 40 + 'px';
}

最佳答案

您应该更改此行:

canvasContext.font= 40 + 'px';

为此:

canvasContext.font = `40px Verdana`;

注意:

不要忘记属性canvasContext.font应该在canvasContext.fillText之前设置!但为什么?因为在 fillText 函数中,文本是在 Canvas 上绘制的。如果之后设置了 font 属性,则 Canvas 上显示的文本不会改变,只有再次绘制时才会改变。

遵循完整的工作示例:

//my actual code

var canvasContext;

window.onload = function () {
    canvas = document.getElementById('gameCanvas');
    canvasContext = canvas.getContext('2d');  
    colorText("Word", 30, 30, "white", "40px");
}

function colorText(showWords, textX, textY, fillColor, fontSize) {
    canvasContext.font = `${fontSize} Verdana`;
    canvasContext.fillStyle = fillColor;
    canvasContext.fillText(showWords, textX, textY);
   
}
canvas {
  background-color: blue;
}
<canvas id="gameCanvas"></canvas>

关于javascript - 如何更改 Canvas 文本的字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58287374/

相关文章:

javascript - 在 ng-grid Angular js 中加载不同的图像

javascript - 如何让程序等待 javascript 中的变量更改?

javascript - 鼠标移动后动画停止( Canvas )

html5 Canvas 在 IE8 中不起作用

jquery - iPhone 上的 HTML5 Canvas 在 touchstart/mousedown 事件上突出显示

javascript - 用于 IE 的 RegExp 负后视断言的替代方案

javascript - 如何使用 php 扫描图像目录并将它们放入我的图库中

javascript - 数据更改时,Ember 组件计算函数不会重新运行

javascript - GetImageData 未返回比较 2 个图像的预期结果

templates - Vue3 TypeError : template ref. 值为空