Добавить шрифт в 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`;
Каталог в окнах C:\Users\...\project\fonts\BerlinSansFBRegular.ttf
, это, вероятно, связано с тем, как я указываю свой путь, потому что это приводит к необработанному отказу от обещания: Ошибка: Не найдено.
Внутри папки проекта находится мой .js
файл и летучая мышь в.
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 в файл.
Помните, у вас всегда есть process_cwd, чтобы найти текущий путь.
Надеюсь это поможет.