【发布时间】:2021-06-15 15:44:11
【问题描述】:
我正在寻找使用我的不和谐机器人和枕头 python 库制作自定义欢迎图像。 我不明白为什么这段代码不起作用。我要疯了……
(如果变量的名称有一些混淆,请不要担心,因为我之前必须翻译这段代码)
import discord
import datetime
import PIL
from PIL import Image, ImageFont, ImageDraw
from discord import client, message
from discord.ext import commands
from discord.utils import get
intents = discord.Intents.default()
intents.members = True
client = commands.Bot(command_prefix="!", intents=intents)
client.remove_command('help')
@client.event
async def on_member_join(member):
await member.avatar_url.save('test.png')
pfp_unresized = Image.open('test.png')
pfp = pfp_unresized.resize((200, 200))
graph = Image.open("graph.png")
black_img = Image.open("Black_img.png")
bannerpfp = black_img.paste(pfp, (400, 30))
bannernotxt = bannerpfp.paste(graph, (0, 0))
await bannernotxt.save('bannernotxt.png')
这是回溯:
Ignoring exception in on_member_join
Traceback (most recent call last):
File "C:\users\yuppi\appdata\local\programs\python\python39\lib\site-packages\discord\client.py", line 343, in _run_event
await coro(*args, **kwargs)
File "c:\Users\yuppi\Documents\Nico\Codici\PYTHON\Discord\DiscordBOT\DiscordBOT.py", line 33, in on_member_join
bannernotxt = bannerpfp.paste(graph, (0, 0))
AttributeError: 'NoneType' object has no attribute 'paste'
希望你能帮助我。
【问题讨论】:
-
Image.paste是一个 inplace 操作,它将更改black并返回None -
也是
black_img.paste不是black.paste -
@LukasThaler 你能解释一下吗?
-
@Ceres 是的,我知道,但我将所有变量都翻译成英文,所以可能有些名称不正确。
-
调用
black_img.paste(pfp, (400, 30))后,原来的black_img变量包含修改后的图像。您不需要存储返回值,因为它始终是None,并且可以继续使用black_img。我稍后会添加一个概述这个想法的答案
标签: python image-processing discord discord.py python-imaging-library