discord.py嵌入了本地保存的图像

时间:2018-01-30 21:00:27

标签: python discord.py

因此,要在discord.py中嵌入设置图像,语法为

embed.set_image(url='http://url_to_image')

但我的问题是我不知道如何将其设置为本地保存的图像,因此我不必继续与这些URL建立连接。

感谢。

(链接到docs:http://discordpy.readthedocs.io/en/latest/api.html#discord.Embed.set_image

2 个答案:

答案 0 :(得分:3)

我的计算机上有一个带有图像的文件夹,我的discord机器人可以随机选择和发送图像。

这是我的代码简化并重新用于发送一个随机图像:

import os    

@client.event
async def on_message(message):
    if message.content == ".img": # Replace .img with whatever you want the command to be

        imgList = os.listdir("./All_Images") # Creates a list of filenames from your folder

        imgString = random.choice(imgList) # Selects a random element from the list

        path = "./All_Images/" + imgString # Creates a string for the path to the file

        await client.send_file(message.channel, path) # Sends the image in the channel the command was used

同样在@ client.event中,您需要记住在您的代码中将客户端替换为您在客户端中命名的任何内容。

当然,还要将文件夹名称更改为与文件实际位于同一文件夹中的名称。

我希望这是你正在寻找的答案,祝你好运!

http://discordpy.readthedocs.io/en/latest/api.html#discord.Client.send_file

答案 1 :(得分:0)

您需要将漫游器根目录中的本地映像设置为附件,并且还需要在ctx.send中提及该文件!我尝试仅做附件,但是显示为空白。因此,请提及file,并将相同的文件作为附件放入set_image中,然后尝试运行代码。 works

    file = discord.File("output.png")
    e = discord.Embed()
    e.set_image(url="attachment://output.png")
    await ctx.send(file = file, embed=e)

让我知道您是否仍然遇到问题!