(Canvas | Discord.js) 我正在尝试使用 `ctx.drawImage(background, 0, 0, canvas.width, canvas.height)` 设置背景,但该
Posted
技术标签:
【中文标题】(Canvas | Discord.js) 我正在尝试使用 `ctx.drawImage(background, 0, 0, canvas.width, canvas.height)` 设置背景,但该命令不起作用【英文标题】:(Canvas | Discord.js) I'm trying to set a background using `ctx.drawImage(background, 0, 0, canvas.width, canvas.height)` but the command doesn't work 【发布时间】:2020-10-25 03:22:39 【问题描述】:如果我只使用此代码,则该命令有效:
const background = await Canvas.loadImage('./silver.jpg');
但我的图片需要多个背景。然后,我写了这段代码,但没有工作:
let backgr;
if (json.items[0].rating < 65) backgr = './bronze.jpg';
else if (json.items[0].rating > 65 && json.items[0].rating < 74) backgr = './silver.jpg';
else if (json.items[0].rating > 75 && json.items[0].rating < 74) backgr = './gold.jpg';
const background = await Canvas.loadImage(backgr);
我在控制台或 Discord 上没有收到任何错误。
【问题讨论】:
【参考方案1】:您应该在加载之前记录 backgr 是什么,这样您就可以看到结果是什么,可能是空白的。
无论如何,我认为错误在条件句中,您使用的是 >
和 <
,但从不检查是否相等,如下所示:
if(rating < 65) ...
else if (rating > 65 && rating < 74) ...
如果评分 === 65 会怎样?它会跳过这两个语句,以及第三个语句
let backgr;
const rating = json.items[0].rating;
if (rating < 65)
backgr = './bronze.jpg';
else if (rating < 74)
backgr = './silver.jpg';
else
backgr = './gold.jpg';
const background = await Canvas.loadImage(backgr);
【讨论】:
谢谢。我再次检查了代码并修复了一些错误(例如... 75 && json.items[0].rating < 74
(因为那是错误的)),然后我添加了您的提示!以上是关于(Canvas | Discord.js) 我正在尝试使用 `ctx.drawImage(background, 0, 0, canvas.width, canvas.height)` 设置背景,但该的主要内容,如果未能解决你的问题,请参考以下文章
Discord.js 使用画布制作图像会引发错误 Canvas.createCanvas 不是函数