Node-Canvas неправильно добавляет шрифт

Я работаю над проектом в своем боте, который использует множество пользовательских шрифтов для рендеринга текста на тему Minecraft и отправки его на канал. Тем не менее, я не могу добавить шрифты в свой проект.

var fonts = {
    "00":[{name:"000",dir:fontFile('0.ttf','00')},{name:"001",dir:fontFile('1.ttf','00')},{name:"002",dir:fontFile('2.ttf','00')},{name:"003",dir:fontFile('3.ttf','00')},{name:"004",dir:fontFile('4.ttf','00')}],
    "01":[{name:"010",dir:fontFile('0.ttf','01')},{name:"011",dir:fontFile('1.ttf','01')},{name:"012",dir:fontFile('2.ttf','01')},{name:"013",dir:fontFile('3.ttf','01')},{name:"014",dir:fontFile('4.ttf','01')}],
    "SGA":[{name:"SGA",dir:fontFile('SGA.ttf','')}]
};

Это список шрифтов, которые я собираюсь добавить. Шрифты хранятся в /home/user/bot/fonts

fontFile это функция:

function fontFile(name,dir) {
  return path.join(__dirname, '/fonts', dir, name);
}

Я использую этот код, чтобы попытаться добавить его:

var canvas = new Canvas(20,100);
var ctx = canvas.getContext('2d');
for(let i in fonts){
    for(let j in fonts[i]){
        let f = new Font(fonts[i][j].name,fonts[i][j].dir);
        f.addFace(fonts[i][j].dir,'normal');
        ctx.addFont(f);
    }
}

Затем я добавляю кучу имен в список fontUsesчто выглядит примерно так: ["000","000","001","000","001"]

Шрифт затем устанавливается на это и записывается на холст:

ctx.font = "30px " + fontUses[l]; ctx.fillText(charUses[l],10 + offset,80); //charUses are characters that are supposed to represent the characters in the font. l is a number (such as 0)

Однако когда я загружаю файл, созданный с использованием этих сценариев, к тексту не применяется шрифт.

0 ответов

Другие вопросы по тегам