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