我已经在这里待了好几天了,我一直坚持最后一部分。 正如标题所暗示的那样,我的创作收到了一个 base64 编码的图像。然后将其加载到缓冲区并尝试将其发送到通道,如下所示:
sfbuffer = new Buffer.from(base64_img, "base64");
const finalattach = new Discord.MessageAttachment(sfbuffer);
message.channel.send(finalattach);
它确实发送了缓冲区,但它总是导致 this
加载的 base64 数据示例
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAEA and so on...
我试过用文件选项发送它(甚至没有发送),并使用 .setimage 和 .attachfiles 作为嵌入,两者都产生相同的结果。请我在这上面敲我的头。所有的谷歌链接都是紫色的,我不知道还能做什么 D:
答案 0 :(得分:1)
尝试这样的事情:
replyMessage.Attachments.Add(new Attachment()
{
ContentUrl = $"data:image/jpeg;base64,{Convert.ToBase64String(bdata)}"
});
This 帖子回答了类似的问题。
答案 1 :(得分:1)
图像缓冲区不应包含
data:image/png;base64,
部分。只有非人类可读的数据
在逗号处拆分 base64 字符串,将其作为缓冲区加载到附件中并发送附件,例如
const sfbuff = new Buffer.from(base64_img.split(",")[1], "base64");
const sfattach = new Discord.MessageAttachment(sfbuff, "output.png");
message.channel.send(sfattach)
即使我明白了,没有 Aviv lo 我也做不到 谢谢大家:)