Discord.py 图像编辑

时间:2021-02-16 22:26:19

标签: discord.py

我注意到一些机器人(例如 MEE6、Arcane、Tatsu,仅举几例)可以获取用户的个人资料并将其添加到另一个图像上。在 Discord.py 中有没有办法做到这一点? (抱歉,如果我错过了在线或其他内容。)

1 个答案:

答案 0 :(得分:2)

这被称为 image manipulation,它可以在 Discord.py 中使用 pillow 完成,它会拍摄图像并与另一个称为“操作”的组合保存

这些是枕头所需的主要进口:

from PIL import Image
from io import BytesIO
from PIL import ImageFont
from PIL import ImageDraw
from PIL import ImageOps

在图片上生成用户个人资料图片的简单命令可以在下面完成,确保放入图片网址或文件,以便它可以覆盖它。

@client.command()
async def test(ctx, user: discord.Member = None):

        my_image = Image.open("Put your image link or file here")

        asset = user.avatar_url_as(size=128)
        data = BytesIO(await asset.read())
        pfp = Image.open(data)

        pfp = pfp.resize((125, 125))
        my_image.paste(pfp, (36, 80))

        my_image.save("profile.png")

        await ctx.send(file=discord.File("profile.png"))

在这个例子中,机器人首先检索图像内容,然后存储它。它将 asset 作为用户的头像 url 并将其读取为字节,但是这太深了,无法进一步解释。然后拍摄两张图片,然后定位,保存文件并发送。

您可以在此处的指南中进一步找到有关枕头的更多信息:https://pillow.readthedocs.io/en/stable/