简体   繁体   English

如何使节点画布中的图像大小始终为 128 像素

[英]how to make the size of an image in node canvas always be 128 px

so I'm having this problem here.所以我在这里遇到了这个问题。 I use node canvas to make image commands for me and my friends in my discord bot, but recently I found out that default discord profile pictures are shown bigger rather than custom ones when drawn over my canvas.我使用节点画布在我的不和谐机器人中为我和我的朋友制作图像命令,但最近我发现在我的画布上绘制时,默认的不和谐个人资料图片显示得更大,而不是自定义图片。 Can anyone tell me what I should do in order to make the size of the images drawn over my canvas always be 128 px?谁能告诉我应该怎么做才能使画布上绘制的图像大小始终为 128 像素?

client.on("message", async (message) => {
  if (message.author.bot) return;
  if (message.content.startsWith("R!grave")) {
const canvas = Canvas.createCanvas(800, 450);
let ctx = canvas.getContext('2d');
let pooh = await Canvas.loadImage('./ez.jpg');
ctx.drawImage(pooh, 0, 0, canvas.width, canvas.height);

const [first, second] = [...message.mentions.users.values()]

    if (!first || !second)
      return message.channel.send('You need to mention two users!');


    let avatar1 = await Canvas.loadImage(first.displayAvatarURL({ dynamic: false, format: 'png' }));
    ctx.drawImage(avatar1, 106, 34, avatar1.width * 0.9, avatar1.height * 0.9);
    let avatar2 = await Canvas.loadImage(second.displayAvatarURL({ dynamic: false, format: 'png' }));
    ctx.drawImage(avatar2, 355, 91, avatar2.width * 0.9, avatar2.height * 0.9);




let attachment = new Discord.MessageAttachment(canvas.toBuffer(), 'example.png')



    return message.channel.send(attachment);
  }
});

您可以将固定的宽度和高度值传递给ctx.drawImage ,因此画布始终以相同的大小绘制它。

ctx.drawImage(avatar2, 355, 91, 128, 128)

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

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