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

动态 png javascript

动态 png javascript

慕神8447489 2022-10-13 15:51:30
我想制作一个不和谐的机器人,在通过 fetch 调用获取数据后将其发送到 dicord。我阅读了不和谐的文档,但我无法调整嵌入消息中的图像大小。有没有办法在不从网站传递的情况下构建动态png,所以只使用nodejs?如果没有,有什么方法可以进行跨站点的 fatch 调用?
查看完整描述

2 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

基本上,Canvas 是一种图像处理工具,可让您使用代码修改图像。因此,为了调整图像大小,您需要从本地目录上传它。


    const canvas = Canvas.createCanvas(700, 250);

    const ctx = canvas.getContext('2d');

  

    const background = await Canvas.loadImage('./wallpaper.jpg')


    // This uses the canvas dimensions to stretch the image onto the entire canvas

    ctx.drawImage(background, 0, 0, canvas.width, canvas.height);


查看完整回答
反对 回复 2022-10-13
?
墨色风雨

TA贡献1853条经验 获得超6个赞

您可以使用Sharp调整图像大小,然后将其作为附件添加到嵌入中。不过,您仍然需要获取图像才能执行此操作。

假设您已经将图像(您可以从外部源获取或在本地加载)作为Buffer名为 的变量image,您的代码将如下所示:

const sharp = require('sharp')


sharp(image).resize({ width: 100, height: 100 }).toBuffer().then(resizedImage => {

  const attachment = new Discord.MessageAttachment(resizedImage, 'image.png');

  const embed = new Discord.MessageEmbed()

    .setTitle('This embed has a resized image attached to it!')

    .attachFiles(attachment)

    .setImage('attachment://image.png')

  channel.send(embed)

})


您可以在此处阅读有关使用锐利调整图像大小的更多信息。


查看完整回答
反对 回复 2022-10-13
  • 2 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

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