Python 使用本地文件作为set_图像文件discord.py

Python 使用本地文件作为set_图像文件discord.py,python,python-3.x,discord.py,Python,Python 3.x,Discord.py,我知道,在discord.py中,您可以将嵌入图像的set\u image设置为图像的url。但是,我想使用计算机上的本地文件来创建set\u图像,而不是图像的url embed = discord.Embed(title="Title", description="Desc", color=0x00ff00) embed.set_image(url = "https://example.com/image.png") #this is for set_image using url 我怎样才

我知道,在discord.py中,您可以将嵌入图像的
set\u image
设置为图像的url。但是,我想使用计算机上的本地文件来创建
set\u图像
,而不是图像的url

embed = discord.Embed(title="Title", description="Desc", color=0x00ff00)
embed.set_image(url = "https://example.com/image.png") #this is for set_image using url

我怎样才能做到这一点?还有其他功能吗?

好的,我刚拿到。其代码如下所示:

embed = discord.Embed(title="Title", description="Desc", color=0x00ff00) #creates embed
file = discord.File("path/to/image/file.png", filename="image.png")
embed.set_image(url="attachment://image.png")
await ctx.send(file=file, embed=embed)
您应该更改的唯一内容是第2行,其中显示了
“path/to/image/file.png”

注意:在第2行和第3行,有一个
image.png
。不用担心,因为这就是Discord所调用的上传文件(例如:我有一个名为
duck.png
,Discord将其作为
image.png
上传到他们的服务器)。因此,您不需要更改
image.png
部分。但是,如果您使用的是与特定扩展名有关的文件,请记住将
image.png
更改为所需的扩展名。例如,需要特定扩展名的文件是GIF文件,因此,如果使用GIF文件,请记住将
image.png
更改为
image.GIF


您可以在discord.py的官方文档中阅读更多内容:

Peppa的答案是正确的,但我必须补充一点,如果您是为gif执行此操作,最好传递一个实际url来设置图像,而不是tachments://image.gifurl。因为每次您执行后一种操作并调用ctx.send或channel.send时,gif必须在发送之前先上传。如果您的gif未被压缩,这可能需要很长时间(对于我来说,5MB gif大约需要2-3分钟)。而通过传递一个url,你可以在几秒钟内获得gif。

@AnchithAcharya我的错我的答案没有那么详细。我只是继续编辑它。将
image.png
更改为
image.gif
。该文件名就是Discord服务器上的文件名。在您的场景中,您调用了一个本地gif文件,但将其上载为
.png
Nah,我可以从语法中推断出来。我确实尝试过使用.gif,但程序只是在channel/ctx.send处停止,甚至没有返回任何错误消息。我试着将gif文件上传,但结果类似。它只是进入send方法,再也没有返回。至少我是这么想的。几分钟后,gif出现了。我以为send方法中的流突然停止了,实际上,它根本没有停止,一直在上传。对于gif,使用url上传比使用本地文件要好。您的代码段在第3行重新定义了嵌入,这会丢失您在第1行设置的颜色、标题和描述。@SamRockett我的错。为了反映这一变化,我改变了答案。