Discord.Py 混合图片并发送,无需下载

Discord.Py blend pictures and send them without dowload them

我有以下问题:

1.- 我想在不下载的情况下发送不和谐的文件。我不知道这是否可行,但我想用 BytesIo 发送它。

2.- 我的 Bot 文件中保存了一张图片,另一张来自 ctx.author.avatar

3.- 我想混合两个图像并发送结果。对于混合,我的意思是,例如,如果我将使用 cv2,我将使用 addWeighted()。

我知道的代码是下载成员的图片,使用 cv2 读取两张图片,调整它们的大小并使用 addWeighted。之后我保存混合图片并将其作为消息发送。完成所有操作后,我删除图片(头像和混合图片)。从我的角度来看,这真的很低效,这就是为什么我想知道是否有一种方法可以使用 PIL 和 BytesIo 或者使用 dataArray 来混合它们并在不下载的情况下发送它。

所以简而言之,我想知道是否有一种方法可以在不下载第二个(会员头像图片)的情况下混合两个图像并在不下载混合图像的情况下发送它.

如果需要,我可以使用已有的代码,但由于我的代码是下载图片,我想这无济于事。

您可以从消息()中获取图片的URL:

message.attachments[0].url

然后使用 requests 库 ()

将图像加载到内存中

我最后找到的解决方法是仅使用 Pillow 执行以下操作:

image1 = Image.open("img.jpg", mode='r')
image2 = Image.open(requests.get(url, stream=True).raw)

我的内存中有两个图像,所以我只需要调整它们的大小并混合。最后我只是使用 io.Bytes() 来制作字节并发送它。 如何混合 -> https://pythontic.com/image-processing/pillow/blend