Discord.js 如何向节点画布中的图像添加文本?
因此,我一直在查找discord.js文档,并试图制作一张带有图像处理的个人资料卡,但出于某种原因,文本显示为小方框。代码如下:Discord.js 如何向节点画布中的图像添加文本?,discord.js,image-manipulation,Discord.js,Image Manipulation,因此,我一直在查找discord.js文档,并试图制作一张带有图像处理的个人资料卡,但出于某种原因,文本显示为小方框。代码如下: if (message.content === `-profile`) {\ const Canvas = require(`canvas`); const canvas = Canvas.createCanvas(700, 250); const ctx = canvas.getContext('2d')
if (message.content === `-profile`) {\
const Canvas = require(`canvas`);
const canvas = Canvas.createCanvas(700, 250);
const ctx = canvas.getContext('2d');
const background = await Canvas.loadImage('./image.png');
ctx.drawImage(background, 0, 0, canvas.width, canvas.height);
ctx.strokeStyle = '#74037b';
ctx.strokeRect(0, 0, canvas.width, canvas.height);
ctx.font = '100px sans-serif';
// Select the style that will be used to fill the text in
ctx.fillStyle = '#34ebc9';
// Actually fill the text with a solid color
ctx.fillText(message.author.displayName, canvas.width / 2.5, canvas.height / 1.8);
ctx.beginPath();
ctx.arc(125, 125, 100, 0, Math.PI * 2, true);
ctx.closePath();
ctx.clip();
const avatar = await Canvas.loadImage(message.author.displayAvatarURL({ format: 'jpg' }));
ctx.drawImage(avatar, 25, 25, 200, 200);
const attachment = new Discord.MessageAttachment(canvas.toBuffer(), 'welcome-image.png');
message.channel.send(`Your profile, ${message.author}!`, attachment);
}
图片显示,我的个人资料图片显示和一切,但由于某种原因,文本要么不显示,要么是所有的混乱。请提供帮助。您的设备可能没有Canvas正在查找的任何默认文件。您需要自己手动安装这些字体,您可以从中获得一些 将您安装的字体导入到文件中,并用于注册和使用字体
//Assume you imported your font in your main folder
const { registerFont, createCanvas } = require('canvas')
registerFont('./comicsans.ttf', { family: 'Comic Sans' })
const canvas = createCanvas(500, 500)
const ctx = canvas.getContext('2d')
ctx.font = '12px "Comic Sans"'
ctx.fillText('Everyone hates this font :(', 250, 10)
控制台中有错误吗?失败映像的示例?是,我得到
Fontconfig错误:无法加载默认配置文件
。请确保代码正在查找正确的文件。似乎无法加载配置文件