Discord.js 使用画布制作图像会引发错误 Canvas.createCanvas 不是函数

Posted

技术标签:

【中文标题】Discord.js 使用画布制作图像会引发错误 Canvas.createCanvas 不是函数【英文标题】:Discord.js making an image using canvas throws an error Canvas.createCanvas is not a function 【发布时间】:2021-07-06 22:48:32 【问题描述】:

我正在尝试使用画布制作图像,但这样做时出现错误“Canvas.createCanvas 不是函数”

const  Canvas, Image  = require('canvas');

module.exports = 
    name: 'avatar',
    description: 'avatar',
    async execute(message, args) 
        const canvas = Canvas.createCanvas(700, 250);
        const ctx = canvas.getContext('2d');

        const background = await Canvas.loadImage('./yellow.png');
        ctx.drawImage(background, 0, 0, canvas.width, canvas.height);

        ctx.strokeStyle = '#74037b';
        ctx.strokeRect(0, 0, canvas.width, canvas.height);

        const avatar = await Canvas.loadImage(member.user.displayAvatarURL( format: 'png' ));

        ctx.drawImage(avatar, 25, 0, 200, canvas.height);

        const attachment = new Discord.MessageAttachment(canvas.toBuffer(), 'test.png');

        channel.send(attachment);
    

【问题讨论】:

【参考方案1】:

这是

const Canvas = require("canvas");

不是

const  Canvas, Image  = require('canvas');

您也不需要导入 Image,因为您没有使用它。

【讨论】:

以上是关于Discord.js 使用画布制作图像会引发错误 Canvas.createCanvas 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

当机器人托管在 heroku 上时如何制作 discord.js 图像搜索命令

消息嵌入中的 Discord.js v12 图像

Discord JS 欢迎消息画布问题

discord.js 获取画布附件的 URL

CORS 已启用,但 toDataURL 仍会引发警告

Discord.js 使用来自其他消息的附件来更新嵌入中的图像