在画布中的文本轮廓的刺

时间:2013-11-27 07:28:44

标签: html5 canvas html5-canvas

我正在使用html5画布绘制一些文本,但是我得到了一些难看的结果,这是我的示例代码来绘制文本:

  var canvas = document.getElementById('myCanvas');
  var context = canvas.getContext('2d');
  var x = 80;
  var y = 110;

  context.fillStyle = "white"
  context.font = '13px Arial';
  context.lineWidth = 3;
  // stroke color
  context.strokeStyle = 'black';
  context.strokeText('ABCDEFGHIJKLMNOPQRSTUVWXYZ!', x, y);
  context.fillText('ABCDEFGHIJKLMNOPQRSTUVWXYZ!', x, y); 

我得到了这个结果

enter image description here

然后我将文本更改为“abs”并获得此

enter image description here

你可以看到“M”和“s”看起来很难看,有没有人知道如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

这不是由于字体和大小,而是由于笔画路径中的线条是如何连接的。

通过更改线连接方法,尖峰将消失:

context.lineJoin = 'round';

答案 1 :(得分:1)

另外,如果您喜欢尖角(没有尖角尖刺),请尝试:

context.lineJoin = 'miter';
context.miterLimit = 2;

http://jsfiddle.net/hwG42/3/

它可以解决问题。

答案 2 :(得分:0)

使用其他字体时,可能会获得更好的效果。

或者,您只能使用fillText并使用shadow创建大纲。