You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js v14中Canvas模块无法加载本地图片求助

Canvas加载本地背景图报错ENOENT问题

我在使用Canvas加载本地背景图进行图像处理时,持续出现错误:

ENOENT, No such file or directory 'C:\Users\grkmd\OneDrive\Masaüstü\Lum\images\test.png'

我已经反复核对过文件路径,确认路径无误,也尝试替换为JPG格式的图片,但问题依然存在。

我的代码:

const path = require('path');
const { MessageAttachment } = require('discord.js');
const { createCanvas, loadImage } = require('canvas');

const applyText = (canvas, text) => {
const context = canvas.getContext('2d');
const fontSize = 70;

do {
  context.font = `${fontSize -= 10}px sans-serif`;
} while (context.measureText(text).width > canvas.width - 300);

  return context.font;
};

var canvas = createCanvas(700, 250);
var context = canvas.getContext('2d');
var backgroundImage = path.join(__dirname, '../../', 'images', 'test.png')
console.log(backgroundImage)
var background = await loadImage(backgroundImage);

context.drawImage(background, 0, 0, canvas.width, canvas.height);
context.strokeStyle = '#000000';
context.strokeRect(0, 0, canvas.width, canvas.height);

var text = 'Deneme';
var textFont = applyText(canvas, text);
context.font = textFont;
context.fillStyle = '#000000';
context.textAlign = 'center';
context.textBaseline = 'middle';
context.fillText(text, canvas.width / 2, canvas.height / 2);

context.beginPath();
context.arc(125, 125, 100, 0, Math.PI * 2, true);
context.closePath();
context.clip();

var avatar = await loadImage(message.author.displayAvatarURL({ format: 'png' }));
context.drawImage(avatar, 25, 25, 200, 200);

var finalImage = new MessageAttachment(canvas.toBuffer(), 'image.png');
message.channel.send({ files: [finalImage] });

补充截图:

  • 路径与文件情况:路径与文件截图
  • 控制台输出:控制台输出截图

内容的提问来源于stack exchange,提问作者Grkm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:25:20