discord.py 发送 BytesIO
discord.py send BytesIO
我正在使用 Pillow 处理图像,然后想将其发送到 Discord。我的代码:https://paste.pythondiscord.com/comebefupo.py
使用image.show()时,处理后的图像显示正常。
然而,当我想将图像上传到 Discord 时,机器人卡住了并且没有抛出任何错误:
got bytes from direct image string
got bytes from member/user pfp or str
opened image
opened draw
drew top text
drew bottom text
prepared buffer
prepared file
# Bot just gets stuck here, no errors
根据多个来源 (1, 2),我通过将图像保存到 BytesIO 流中,然后使用 seek(0)
.
来做正确的事情
根据 documentation 的 discord.File,它需要一个 io.BufferedIOBase
,这是(我相信)我输入的。
编辑:
先保存图片,然后发送即可。
# Return whole image object
return image
self.convert_bytes(image_bytes, top_text, bottom_text).save('image.png')
await ctx.send(file=discord.File('image.png'))
我不知道为什么这行得通,而另一件事却行不通...
这不是完整的答案,但可能会有所帮助。
image_file = discord.File(io.BytesIO(image_bytes.encode()),filename=f"{name}.png")
await ctx.send(file=image_file )
上周我遇到了类似的问题,这是我用来发送图片的代码
with BytesIO() as image_binary:
image.save(image_binary, 'PNG')
image_binary.seek(0)
await ctx.send(file=discord.File(fp=image_binary, filename='image.png))
我正在使用 Pillow 处理图像,然后想将其发送到 Discord。我的代码:https://paste.pythondiscord.com/comebefupo.py
使用image.show()时,处理后的图像显示正常。
然而,当我想将图像上传到 Discord 时,机器人卡住了并且没有抛出任何错误:
got bytes from direct image string
got bytes from member/user pfp or str
opened image
opened draw
drew top text
drew bottom text
prepared buffer
prepared file
# Bot just gets stuck here, no errors
根据多个来源 (1, 2),我通过将图像保存到 BytesIO 流中,然后使用 seek(0)
.
根据 documentation 的 discord.File,它需要一个 io.BufferedIOBase
,这是(我相信)我输入的。
编辑: 先保存图片,然后发送即可。
# Return whole image object
return image
self.convert_bytes(image_bytes, top_text, bottom_text).save('image.png')
await ctx.send(file=discord.File('image.png'))
我不知道为什么这行得通,而另一件事却行不通...
这不是完整的答案,但可能会有所帮助。
image_file = discord.File(io.BytesIO(image_bytes.encode()),filename=f"{name}.png")
await ctx.send(file=image_file )
上周我遇到了类似的问题,这是我用来发送图片的代码
with BytesIO() as image_binary:
image.save(image_binary, 'PNG')
image_binary.seek(0)
await ctx.send(file=discord.File(fp=image_binary, filename='image.png))