node.js - 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”文件位于此处
解决方案
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']
图像路径的数组,以便包合并在一起。
推荐阅读
- docker - 可以使用 curl 访问该站点,但不能使用浏览器访问该站点
- python - Pandas:重新索引仅对具有唯一值的索引对象有效
- elasticsearch - 如何在弹性搜索查询字符串中转义“AND”、“OR”等特殊词
- javascript - 使用 vanilla Javascript 将多个画布合并为一个(以将其导出)
- r - 如何从 R 矩阵中按名称删除列?
- reactjs - React 钩子 useMemo/useCallback 跳过
- outlook-addin - Outlook Web 插件:我们可以在上下文菜单中添加一个条目吗?
- spring - Spring Boot 应用程序需要一个带有 @Primary 注释的 bean 才能启动
- chart.js - 如何使图表的轴使用相同的比例进行缩放?
- sql-server - 寻找一种从我的查询中排除某些项目的方法