【问题标题】:Add font to node-canvas将字体添加到节点画布
【发布时间】:2017-08-18 22:16:20
【问题描述】:

在过去的一个小时里,我一直在尝试为我的图像添加字体,但没有成功。不幸的是,虽然这看起来很容易,但我无法让它发挥作用。

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 文件和bat 所在的位置。

【问题讨论】:

    标签: node.js fonts path node-canvas


    【解决方案1】:

    如果我没记错的话,(我不再在Windows机器上工作了),_dirname会根据Node docs->“当前模块的目录名”返回。 这不是您在这里寻找的路径。您需要字体文件的路径,该路径来自根目录../。我认为你需要在这里重做你的路径:

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

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

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

    看看是否返回正确,然后使用root的node实现来归档。

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-07
      • 2018-10-16
      • 1970-01-01
      • 2021-11-16
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多