我一直在尝试在过去的一小时内为我的图片添加字体失败。不幸的是,虽然这看起来真的很容易,但我无法让它发挥作用。
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
文件和蝙蝠所在的位置。
答案 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来查找当前路径。
希望这有帮助。