discord.py bot 使用 Pillow - ValueError:图像不匹配
Posted
技术标签:
【中文标题】discord.py bot 使用 Pillow - ValueError:图像不匹配【英文标题】:discord.py bot using Pillow - ValueError: images do not match 【发布时间】:2021-05-05 03:39:50 【问题描述】:我正在尝试使用一个命令制作一个 discord.py 机器人,该命令获取已标记用户的头像,将透明图像放在顶部,然后将编辑后的照片发回。我一直在将教程和其他 *** 问题中的代码碎片混在一起,所以我对我的代码在做什么并不完全有信心。目前它不起作用,因为我在命令行中不断收到错误。下面是bot命令的代码:
@scb.command(name='smack', description="smack cam someone", pass_context=True)
async def smack(ctx, member: Member = None):
if not member:
member = ctx.author
smackfile=r"E:\Smack Cam Bot\pie.png"
asset = member.avatar_url_as(size=128)
data = BytesIO(await asset.read())
providedimage = Image.open(data)
pie = Image.open(smackfile)
smack = Image.new("RGBA", providedimage.size)
smack = Image.alpha_composite(smack, pie)
smack.save("smack.png")
await scb.send_file(ctx.message.channel, "smack.png")
这是错误:
Ignoring exception in command smack:
Traceback (most recent call last):
File "C:\Users\aj-ja\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
ret = await coro(*args, **kwargs)
File "smackbot.py", line 37, in smack
smack = Image.alpha_composite(smack, pie)
File "C:\Users\aj-ja\AppData\Local\Programs\Python\Python37-32\lib\site-packages\PIL\Image.py", line 2979, in alpha_composite
return im1._new(core.alpha_composite(im1.im, im2.im))
ValueError: images do not match
除了一点 Pygame 之外,我没有太多使用 Python。如果能得到任何帮助,我将不胜感激。
【问题讨论】:
您是否尝试过检查图像模式question @Ceres 我不知道这是什么意思。我该怎么做才能使它们成为正确的模式? 【参考方案1】:感谢 Twitter 用户 __hetz,我可以回答我自己的 *** 帖子。
两张图片的尺寸必须匹配。就是这样。 此外,我还找到了一种更简单的方法,可以将头像资源转换为所需大小的 .PNG 图像:
await ctx.author.avatar_url_as(format="png",size=128).save(fp="avatar.png")
我还在 alpha_composite 行中使用了错误的变量名,所以它应该是:
smack = Image.alpha_composite(providedimage, pie)
最后但并非最不重要的一点是,我用来发送消息的功能已经过时了。它应该是:
await ctx.message.channel.send(file=discord.File("smack.png"))
希望这可以帮助一些更愚蠢的青少年尝试制作自己的 Discord 机器人。
【讨论】:
以上是关于discord.py bot 使用 Pillow - ValueError:图像不匹配的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 discord.py 让 discord bot ping 用户 [关闭]
Discord bot 添加对消息 discord.py 的反应(无自定义表情符号)
Discord Bot 响应短语(Discord.py 重写)