Python discord.py/Image: Как отредактировать изображение профиля ctx.author с помощью Image и отшлифовать его обратно на дискорд? - PullRequest
0 голосов
/ 24 апреля 2020

Привет, я пытаюсь вывести аватар на дискорд, затем добавить текст и, наконец, отправить его обратно в татч.

Итак, я попытался получить изображение пользователя:

  • шаг 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: запрещено. Как решить эту проблему?

1 Ответ

0 голосов
/ 24 апреля 2020

Вы можете использовать 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...