首页 > 解决方案 > Discord.js 画布 TypeError:sources.map 不是使用合并图像的函数

问题描述

我正在尝试使用画布和合并图像制作图像,但出现错误“TypeError:sources.map 不是函数”

const mergeImages = require('merge-images')
const { Canvas, Image } = require('canvas');
const Discord = require('discord.js')
module.exports = {
    name: 'avatar',
    description: 'avatar',
    async execute(message, args) {               
        let b64 = await mergeImages('assets/colors/yellow.png', { Canvas: Canvas, Image: Image });
        b64 = b64.split(';base64,').pop();
        await message.channel.send({ files: [{ attachment: Buffer.from(b64, 'base64'), name: `avatar.png` }] });
    }
}

编辑:“yellow.png”文件位于此处

黄色.png

标签: node.jscanvasdiscord.js

解决方案


merge-images#mergeImages需要一个数组,相反,您提供了一个字符串:let b64 = await mergeImages('assets/colors/yellow.png', { Canvas: Canvas, Image: Image });

'assets/colors/yellow.png'是单个字符串,而不是数组。该包正在尝试在您提供的此字符串上调用Array#map ,将其更改为,或者最好是具有多个['assets/colors/yellow.png']图像路径的数组,以便包合并在一起。


推荐阅读