简体   繁体   English

Discord.js 中的图像大小

[英]Image Size in Discord.js

I'm making a command to display someone's avatar in discord such as !avatar < @user >/< userID >.我正在发出命令以在 discord 中显示某人的头像,例如 !avatar < @user >/< userID >。 I want to display the image size as 256 x 256, not 128 x 128. I found a way but now I'm just confused on what's happening here, maybe it's the user.avatarURL .我想将图像尺寸显示为 256 x 256,而不是 128 x 128。我找到了一种方法,但现在我对这里发生的事情感到困惑,也许是user.avatarURL

the code:编码:

const Discord = require('discord.js');
const Canvas = require('node-canvas');
module.exports = {
name: 'avatar',

async run(message, args) {
    const canvas = Canvas.createCanvas(256, 256);
    const context = canvas.getContext('2d');
    const user = message.mentions.users.first() || message.author;

const avatarEmbed = new Discord.MessageEmbed()
        const background = await Canvas.loadImage(user.avatarURL())
        context.drawImage(background, 0, 0, canvas.width, canvas.height)
        const attachment = new Discord.MessageAttachment(canvas.toBuffer(), 'avatar.png')
  .setTitle(user.username)
  .setImage(attachment)
        .setColor('RED');

    message.channel.send(avatarEmbed)
}

} }

error:错误:

(node:1464) UnhandledPromiseRejectionWarning: Error: Unsupported image type (节点:1464)UnhandledPromiseRejectionWarning:错误:不支持的图像类型

the rest is just locations of package files. rest 只是 package 文件的位置。 I appreciate your help!我感谢您的帮助!

You don't need to write image from discord.js into canvas and resend it.Discord embed allow you to using image url.您不需要从discord.js写入ZFCC790C790C72A86190D0DEB549D0DC6F5C6F55555151515151225C112F112F112F155BBE7125BBE7125BBE7125BBE7125BBE7125BBE7125BBE7125BBE7125BBERING7125BBBB.

And to get specific size of avatar you can using options size要获得特定大小的头像,您可以使用选项size

Bonus: options: dynamic is for gif avatar奖励:选项:动态用于 gif 头像

message.mentions.users.first().displayAvatarURL({ size: 1024, dynamic: true })

Finally your code can be something look like最后你的代码可能看起来像

const user = message.mentions.users.first() || message.author;
const avatarEmbed = new Discord.MessageEmbed()
  .setTitle(user.username)
  .setImage(user.displayAvatarURL({ size: 1024, dynamic: true }))
        .setColor('RED');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM