using (MemoryStream stream = new MemoryStream())
{
bitMap.Save(stream, System.DrawingCore.Imaging.ImageFormat.Jpeg);
stream.Seek(0, SeekOrigin.Begin);
bitMap.Dispose();
await Context.Channel.SendFileAsync(stream, "Text");
}
真快,我找不到具体的答案。我正在从硬盘驱动器上获取图像,将文本应用于图像,然后将其上传到服务器。这只是与模因相关的东西。
问题是,我不想在上传之前将其保存到硬盘。我宁愿将其保留在MemoryStream中。这样做的结果是,它会像上传文件一样上传图像,并且除非人们先下载图像,否则图像不会显示。
我认为这是因为Discord不会区分文件在流中的内容,而只是将其作为直接传输来发送。
我能做些什么吗?
答案 0 :(得分:1)
我很抱歉,但我似乎偶然发现了自己的答案。万一其他人有这个问题,我会回答,以帮助他们。
await Context.Channel.SendFileAsync(stream, "Text");
第二个参数是文件的标题。根据您在Bitmap.Save()期间选择的文件格式,在标题后键入文件扩展名。在我的示例中,文字应为Text.jpg。
似乎这样做会告诉Discord将其作为图像而不是文件传输来上传。
答案 1 :(得分:1)
尝试指定带有扩展名的文件名来标识文件内容,如果没有该API,API将不提供您要发送的文件类型的信息:
await Context.Channel.SendFileAsync(stream, "image.jpeg", "Text");