为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 discord.js 中为 discord bot 合并图像?

如何在 discord.js 中为 discord bot 合并图像?

小唯快跑啊 2022-06-05 16:39:59
我正在尝试创建一个将头像与图像合并的命令,例如,如果有人键入 =jail,则头像上的监狱栏 - 我已经创建了一个对命令进行排序的命令处理程序。但是,我无法弄清楚如何实现这一目标。我正在使用 Windows 平台(显然这意味着我不能使用节点 gd)
查看完整描述

1 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

您可以为此使用 Jimp。这是 NPM 网站:https ://www.npmjs.com/package/jimp


它允许您修改图片、添加文本等。您想要的内容类似于以下内容:


//an array of all images we're using. MAKE SURE THEIR SIZES MATCH

var images = [<link to the user's avatar>, <link to an image of jail bars>]

var jimps = []

//turns the images into readable variables for jimp, then pushes them into a new array

for (var i = 0; i < images.length; i++){

    jimps.push(jimp.read(images[i]))

}

//creates a promise to handle the jimps

await Promise.all(jimps).then(function(data) {

    return Promise.all(jimps)

}).then(async function(data){

    // --- THIS IS WHERE YOU MODIFY THE IMAGES --- \\

    data[0].composite(data[1], 0, 0) //adds the second specified image (the jail bars) on top of the first specified image (the avatar). "0, 0" define where the second image is placed, originating from the top left corner

    //you CAN resize the second image to fit the first one like this, if necessary. The "100, 100" is the new size in pixels.

    //data[1].resize(100,100)


    //this saves our modified image

    data[0].write(<path on your local disk to save the image in>)

})

现在您所要做的就是从本地磁盘发送图像:


message.channel.send(`Jailed!`, {file: `${<path to the image>}`})


查看完整回答
反对 回复 2022-06-05
  • 1 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信