Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在画布文本上设置字体权重_Javascript_Canvas - Fatal编程技术网

Javascript 在画布文本上设置字体权重

Javascript 在画布文本上设置字体权重,javascript,canvas,Javascript,Canvas,我正在尝试使用Canvas元素在图像上写入文本 我已经将字体大小设置为900,但在手机上它不会显示 在桌面上它很好,甚至在响应模式下测试它看起来也很好,但是当我让它生效时,我的手机上就不会有更重的字体了 我尝试在的注释中调试代码段,发现出于某种原因,ctx.font只存储字体大小和字体名称,而不存储字体大小 我添加了单词bold,它将存储该单词,但不会存储bold或数字值 有人知道这里发生了什么吗 我已经包含了一个代码片段和一个调试的屏幕截图,显示了如何存储字体值 function main()

我正在尝试使用Canvas元素在图像上写入文本

我已经将字体大小设置为900,但在手机上它不会显示

在桌面上它很好,甚至在响应模式下测试它看起来也很好,但是当我让它生效时,我的手机上就不会有更重的字体了

我尝试在的注释中调试代码段,发现出于某种原因,
ctx.font
只存储字体大小和字体名称,而不存储字体大小

我添加了单词
bold
,它将存储该单词,但不会存储
bold
或数字值

有人知道这里发生了什么吗

我已经包含了一个代码片段和一个调试的屏幕截图,显示了如何存储字体值

function main() {
  // Put template on canvas
  ctx.drawImage(img, 0, 0, size, size);

  ctx.font = "bold 110px 'Saira Condensed', sans-serif";
  ctx.textAlign = "center";
  ctx.fillStyle = "#ffffff";
  ctx.fillText(number, 325, 290);
}

我已经将字体大小设置为900,但在手机上它不会显示

在桌面上,它很好,甚至可以在响应模式下测试它 看起来不错


你能查一下那个链接吗?我不确定这是否与您的问题有关,但这会有所帮助:

Chrome和Safari要求同时设置字体样式,以便使用数值作为字体重量:

const canvas=document.querySelector(“canvas”);
const ctx=canvas.getContext(“2d”);
//添加“普通”字体样式
ctx.font=“标准900 24px未知,无衬线”;
ctx.fillText(“粗体”,50,50);
ctx.font=“24px未知,无衬线”;
ctx.fillText(“正常”,150,50)
canvas{背景:白色}

也许您的字体没有安装在手机上。尝试让f=newfontface('test','url(x)');f、 load().then(函数(){//准备在画布上下文中使用字体});我试过了,但没用。我使用了ctx.font=“标准900 110px‘Saira Condensed’,无衬线”;但在手机上,它的字体仍然不够重,在调试器中,它仍然只显示“110px'Saira Condensed',sans serif”,这是一种谷歌字体,所以我可能会尝试使用非谷歌字体,看看这是否是问题的一部分。