小编Nee*_*vek的帖子

无法在 Canvas 上使用 Google 字体

这是我的代码:

img.onload = function() {

  ctx.drawImage(img, 0, 0, 600, 480);

  ctx.lineWidth  = 4;
  ctx.font = "3em 'Lato'";
  ctx.strokeStyle = 'black';
  ctx.fillStyle = 'white';

  var text = 'Custom Text';
  text = text.toUpperCase();
  x = canvas.width/2;
  y = canvas.height - canvas.height/4.5;
  ctx.strokeText(text, x, y);
  ctx.fillText(text, x, y);
}
Run Code Online (Sandbox Code Playgroud)

画布上的字体不是 Lato。阅读其他答案后,我认为这可能是因为我没有在任何其他 HTML 元素上使用它,但后来我还添加了一个使用该Lato字体的标题。还有其他原因可能导致此问题吗?

html javascript canvas

5
推荐指数
2
解决办法
7637
查看次数

如何在不使模糊的情况下缩放HTML5画布?

我使用以下标记创建了一个画布:

<canvas id="canvas"></canvas>
Run Code Online (Sandbox Code Playgroud)

现在,如果我指定widthheight直接在这里,然后在画布上的图纸将是非常尖锐的.

<canvas id="canvas" width="600px" height="400px"></canvas>
Run Code Online (Sandbox Code Playgroud)

但是这样我无法灵活地缩放画布以覆盖每个屏幕尺寸.使用vhvw代替像素也不起作用.我尝试在JavaScript中设置它们:

$('#canvas').css({
   "height": window.innerHeight,
   "width": window.innerWidth
 });
Run Code Online (Sandbox Code Playgroud)

这覆盖了整个画布,但使线条模糊.有什么方法可以在画布仍然覆盖整个屏幕的同时获得清晰的图像吗?

我试过用:

$("#canvas")
.prop("width", window.innerWidth)
.prop("height", window.innerHeight);
Run Code Online (Sandbox Code Playgroud)

但画布上的物体(例如我画的圆圈)仍然模糊不清.当我打开devTools时,我看到以下标记:

<canvas id="canvas" style="height: 768px; width: 1366px;"></canvas>
Run Code Online (Sandbox Code Playgroud)

所以,我猜宽度和高度仍然由CSS定义.

javascript css html5 canvas

3
推荐指数
1
解决办法
1925
查看次数

如何在 feComponentTransfer 类型“table”中使用 tableValues

我正在学习 SVG。到目前为止,它一直很棒,但现在我坚持使用表值进行颜色传输。下面是一个例子:

<feFuncR type="table" tableValues="1 0 0 0"></feFuncR>
Run Code Online (Sandbox Code Playgroud)

此功能将红色实心条更改为黑色。我想知道tableValues属性是如何工作的,以便我可以自己弄清楚颜色的变化。我找不到任何详细解释它的文章。

svg

1
推荐指数
1
解决办法
513
查看次数

标签 统计

canvas ×2

javascript ×2

css ×1

html ×1

html5 ×1

svg ×1