将字体添加到node-canvas

时间:2017-03-26 05:49:04

标签: node.js fonts path node-canvas

我一直在尝试在过去的一小时内为我的图片添加字体失败。不幸的是,虽然这看起来真的很容易,但我无法让它发挥作用。

const Canvas = require('canvas');
var Font = Canvas.Font;
var BerlinSansFBRegular = Font ? new Font('BerlinSansFBRegular', path.join(__dirname,'./BerlinSansFBRegular.ttf')) : null;

//..

let canvas = new Canvas(GIF_WIDTH, height);
let context = canvas.getContext('2d');
context.addFont(BerlinSansFBRegular);
context.font = `13px BerlinSansFBRegular`;

Windows C:\Users\...\project\fonts\BerlinSansFBRegular.ttf中的目录,它可能与我给出路径的方式有关,因为它会抛出未处理的承诺拒绝:错误:找不到。

项目文件夹中是我的.js文件和蝙蝠所在的位置。

1 个答案:

答案 0 :(得分:1)

如果我没有记错,(我不再在Windows机器上工作),_dirname将根据Node docs - >返回"当前模块的目录名称"。 这不是你在这里寻找的道路。您需要Font文件的路径,该文件来自根../。我想你需要在这里重做你的道路:

new Font('BerlinSansFBRegular', path.join(**__dirname**,'./BerlinSansFBRegular.ttf'))

为了确保我首先将确切的路径放在上面一行:

new Font('BerlinSansFBRegular', path.join(C:\Users\...\project\fonts\BerlinSansFBRegular.ttf'./BerlinSansFBRegular.ttf'))

并查看它是否正确返回,然后使用root的节点实现来存档。

请记住,您总是有process_cwd来查找当前路径。

希望这有帮助。