【问题标题】:Discord.js canvas TypeError: sources.map is not a function using merge-imagesDiscord.js 画布 TypeError:sources.map 不是使用合并图像的函数
【发布时间】:2021-07-06 03:44:41
【问题描述】:

我正在尝试使用画布和合并图像制作图像,但出现错误“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”文件位于此处

【问题讨论】:

  • 你的文件结构是什么?这个文件在哪里,“yellow.png”在哪里?使用该信息更新您的问题
  • 已编辑,文件结构是指文件类型吗?
  • 而不是 "items = ['../../assets/colors/yellow.png']" 使用这个:定义 "const path = require('path');"和“让 items = [path.join(__dirname, './../../assets/colors/yellow.png')]”
  • 奇怪的仍然给出同样的错误
  • yellow.png 文件只是我们中间一位船员的透明图像,不知道有什么问题

标签: node.js canvas discord.js


【解决方案1】:

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'],或者最好是具有 多个 包图像路径的数组合并在一起。

【讨论】:

    猜你喜欢
    • 2021-07-06
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 2015-06-15
    • 2013-03-08
    • 2015-11-24
    • 2012-05-25
    相关资源
    最近更新 更多