Используя Node.js, как мне использовать локальный шрифт? - PullRequest
0 голосов
/ 28 апреля 2020

Итак, у меня возникла проблема, когда я попытался выбрать нестандартный шрифт из папки.

Вот мой полный код:

const Discord = require("discord.js");
const { createCanvas, loadImage } = require("canvas");
const canvas = createCanvas(512, 256);
const ctx = canvas.getContext('2d');
const shid = require("shortid");
const fs = require("fs");

module.exports = {
    aliases: [],
    execute: function (msg, cmd, client) {
        var id = shid.generate();
        ctx.fillStyle = "#ffffff";
        ctx.fillRect(0, 0, 512, 256)
        ctx.font = '84px ../rcptch.tff';
        ctx.fillStyle = "#000000";
        ctx.textAlign = "center";
        ctx.fillText(id, 500, 244);
        const buffer = canvas.toBuffer('image/png');
        fs.writeFileSync(`../img/${id}.png`, buffer);
        msg.channel.send(new Discord.Attachment(`../img/${id}.png`, `id.png`));
    }
};

Аддон shortid позволяет мне генерировать идентификаторы и это все для капатч. Меня больше интересует создание моей собственной системы capatcha, чем просто использование аддона.

Кроме того, вот ошибка, которую я получаю при каждом запуске команды:

♫ The Red ♫#8708 >> k!verify

(process:65108): Pango-WARNING **: 00:28:19.733: couldn't load font " Not-Rotated 84px", falling back to "Sans Not-Rotated 84px", expect ugly output.
internal/fs/utils.js:220
    throw err;
    ^

Error: ENOENT: no such file or directory, open '../img/O9dSuwK8u.png'
    at Object.openSync (fs.js:440:3)
    at Object.writeFileSync (fs.js:1265:35)
    at Object.execute (C:\Users\mantv\OneDrive\Stalinis kompiuteris\Kepler\bots\discord\commands\verify.js:19:6)
    at Object.handle (C:\Users\mantv\OneDrive\Stalinis kompiuteris\Kepler\bots\discord\cmdh.js:51:15)
    at Client.<anonymous> (C:\Users\mantv\OneDrive\Stalinis kompiuteris\Kepler\bots\discord\main.js:17:7)
    at Client.emit (events.js:210:5)
    at MessageCreateAction.handle (C:\Users\mantv\OneDrive\Stalinis kompiuteris\Kepler\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
    at Object.module.exports [as MESSAGE_CREATE] (C:\Users\mantv\OneDrive\Stalinis kompiuteris\Kepler\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
    at WebSocketManager.handlePacket (C:\Users\mantv\OneDrive\Stalinis kompiuteris\Kepler\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
    at WebSocketShard.onPacket (C:\Users\mantv\OneDrive\Stalinis kompiuteris\Kepler\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22) {
  errno: -4058,
  syscall: 'open',
  code: 'ENOENT',
  path: '../img/O9dSuwK8u.png'
}

В каталог, который он указывает (../img/09dSuwK8u.png) Я не могу найти ЛЮБЫЕ файлы.

...