嘿,我试着在discord上获取头像图片,然后在上面添加文本,最后在tchat中发送回来。
所以我尝试了这个来获得用户的图像:
- 步骤1:获取用户头像url
- 步骤2:获取更改url以获得正确大小的图片
- 步骤3:请求图像
- 步骤4:使用image.open打开图像
这是我完成这些步骤的代码:
@bot.command(name="pic")
async def get_pic(ctx):
url = f"{str(ctx.author.avatar_url)[:-4]}128" # get url and change 1024 to 128
avatar = Image.open(urllib.request.urlopen(url))
不幸的是,我收到一个错误403:禁止。如何解决这个问题?
您可以使用User.avatar_url_as
以所需大小获取代表化身的Asset
对象,将数据读取到类似文件的对象中,然后使用PIL 打开该类似文件的物体
from PIL import Image
from io import BytesIO
@bot.command(name="pic")
async def get_pic(ctx):
asset = ctx.author.avatar_url_as(size=128)
data = BytesIO(await asset.read())
image = Image.open(data)
它像这样描述
HTTP响应代码403表示禁止访问请求的资源。服务器理解该请求,但不会完成。
意味着服务器收到了你的请求,但你没有权限,我想
编码快乐!