对于给定的字体和给定的字符串,如何在JavaScript中使用下面的图片获取像这样的多边形点?多边形指出字母
(我知道对SO有关的问题,但它们对于Python或其他语言/环境;我想的JavaScript唯一的解决方案,如果可能的话)
编辑:随访@罗马人答案:
使用typeface.js在线工具,我将TrueType字体转换为typeface.js格式。每个字母表示与此类似:(这里是信d
的表示)
"d": {
"x_min": 135.640625,
"x_max": 792.171875,
"ha": 928,
"o": "m 135 998 l 330 998 q 792 499 763 933 q 330 0 763 65 l 135 0 l 135 998 m 330 151 q 648 499 635 211 q 330 846 635 786 l 287 846 l 287 151 l 330 151 "
},
typeface.js码的呈现基于此格式的信件的关键部分是:
switch(action) {
case 'm':
ctx.moveTo(outline[i++], outline[i++]);
break;
case 'l':
ctx.lineTo(outline[i++], outline[i++]);
break;
case 'q':
var cpx = outline[i++];
var cpy = outline[i++];
ctx.quadraticCurveTo(outline[i++], outline[i++], cpx, cpy);
break;
case 'b':
var x = outline[i++];
var y = outline[i++];
ctx.bezierCurveTo(outline[i++], outline[i++], outline[i++], outline[i++], x, y);
break;
}
您可能需要写一个画布,然后使用一些算法(您可能可以借用另一种语言)计算,基于画布的像素 –