discord.pyの枕で画像を円形にトリミングするにはどうすればよいですか?

ドミノ

そのため、ボットがユーザーのアバター画像を指名手配のポスターの上に配置する「指名手配」コマンドを作成しようとしています。コマンドを機能させることはできましたが、アバターを円形にトリミングしようとして問題が発生しました。これが私のコードです:

@bot.command(aliases=['Wanted'])
async def wanted(ctx,*, user: discord.Member = None):
  async with ctx.typing():
    if user == None:
        user = ctx.author

    wanted = Image.open("wanted.png")
    
    asset = user.avatar_url_as(size=128)

    data = BytesIO(await asset.read())
    pfp = Image.open(data)
    bigsize = (asset.size[0] * 3, asset.size[1] * 3)
    mask = Image.new('L', bigsize, 0)
    draw = ImageDraw.Draw(mask) 
    draw.ellipse((0, 0) + bigsize, fill=255)
    mask = mask.resize(asset.size, Image.ANTIALIAS)
    asset.putalpha(mask)

    pfp = pfp.resize((682,682))
    output = ImageOps.fit(asset, mask.size, centering=(0.5, 0.5))

    output.putalpha(mask)
    
    wanted.paste(pfp,(280,480))

    wanted.save("profile.png")

    await ctx.send(file=discord.File("profile.png"))

これが私が得ているエラーです:


Traceback (most recent call last):
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 903, in invoke
    await ctx.command.invoke(ctx)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 855, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Asset' object has no attribute 'size'```
Cho'Gath

ドキュメントによると、 DiscordAssetオブジェクトには属性がないため、不平を言っていますsize

代わりに使用したいのは、探している属性を持つPILImageオブジェクトsizeです。これは、コードを少し変更することで実行できます。

asset = user.avatar_url_as(size=128)

data = BytesIO(await asset.read())
pfp = Image.open(data)
# Instead of using asset.size, we use pfp.size.  pfp is a PIL Image object
# that has the size attribute.
bigsize = (pfp.size[0] * 3, pfp.size[1] * 3)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

たとえば、画像を形にトリミングする方法。Discord.pyで枕を使ってサークル?

分類Dev

PythonでのDiscordボットのプログラミング-ボットに画像を繰り返させるにはどうすればよいですか?

分類Dev

PythonでのDiscordボットのプログラミング-ミュートコマンドを作成するにはどうすればよいですか?

分類Dev

discord.pyボットに特定の単語/フレーズをフィルタリングさせるにはどうすればよいですか?

分類Dev

PythonでのDiscordボットのプログラミング-ボットをより速く実行するにはどうすればよいですか?

分類Dev

discord.pyでリストを追跡するにはどうすればよいですか?

分類Dev

PythonでのDiscordボットのプログラミング-ボットに@everyoneをpingさせるにはどうすればよいですか?

分類Dev

PythonでのDiscordボットのプログラミング-キックコマンドを作成するにはどうすればよいですか?

分類Dev

discord.pyでコマンドの実行を停止するにはどうすればよいですか?

分類Dev

discord.pyボットのherokuでpostgresを実行するにはどうすればよいですか?

分類Dev

PythonでのDiscordボットのプログラミング-メッセージを自動的に送信させるにはどうすればよいですか?

分類Dev

PythonでのDiscordボットのプログラミング-ボットに画像のグループからランダムな画像を送信させるにはどうすればよいですか?

分類Dev

PythonでのDiscordボットのプログラミング-埋め込みでインデントするにはどうすればよいですか?

分類Dev

Discord.py-音声チャンネルのIDを取得するにはどうすればよいですか?

分類Dev

事前にダウンロードして変換せずに、pytubeからFFMPEGとdiscord.pyにオーディオをストリーミングするにはどうすればよいですか?

分類Dev

herokuでdiscord.pyボットをホストするにはどうすればよいですか?

分類Dev

herokuでdiscord.pyボットをホストするにはどうすればよいですか?

分類Dev

discord.pyでリアクションを行うイベントを作成するにはどうすればよいですか?

分類Dev

discord.pyの書き換え| これを整数にするにはどうすればよいですか?

分類Dev

Discordでのボットのプログラミング-ボットにsubredditからランダムな画像を送信させるにはどうすればよいですか?

分類Dev

discord.pyでpingコマンドを作成するにはどうすればよいですか?

分類Dev

discord.pyでタイマーコマンドを作成するにはどうすればよいですか?

分類Dev

Discord JDAのdiscordタグからユーザーを取得するにはどうすればよいですか?

分類Dev

discord.pyのすべての役割を一覧表示するにはどうすればよいですか?

分類Dev

このイベントにクールダウンまたはレート制限を追加するにはどうすればよいですか?discord.py

分類Dev

このイベントにクールダウンまたはレート制限を追加するにはどうすればよいですか?discord.py

分類Dev

discord.pyでカスタムサイクリングステータスを作成するにはどうすればよいですか?

分類Dev

Discord.pyでユーザーのIDを取得するにはどうすればよいですか?

分類Dev

discord.pyで自分のメッセージを削除するにはどうすればよいですか?

Related 関連記事

  1. 1

    たとえば、画像を形にトリミングする方法。Discord.pyで枕を使ってサークル?

  2. 2

    PythonでのDiscordボットのプログラミング-ボットに画像を繰り返させるにはどうすればよいですか?

  3. 3

    PythonでのDiscordボットのプログラミング-ミュートコマンドを作成するにはどうすればよいですか?

  4. 4

    discord.pyボットに特定の単語/フレーズをフィルタリングさせるにはどうすればよいですか?

  5. 5

    PythonでのDiscordボットのプログラミング-ボットをより速く実行するにはどうすればよいですか?

  6. 6

    discord.pyでリストを追跡するにはどうすればよいですか?

  7. 7

    PythonでのDiscordボットのプログラミング-ボットに@everyoneをpingさせるにはどうすればよいですか?

  8. 8

    PythonでのDiscordボットのプログラミング-キックコマンドを作成するにはどうすればよいですか?

  9. 9

    discord.pyでコマンドの実行を停止するにはどうすればよいですか?

  10. 10

    discord.pyボットのherokuでpostgresを実行するにはどうすればよいですか?

  11. 11

    PythonでのDiscordボットのプログラミング-メッセージを自動的に送信させるにはどうすればよいですか?

  12. 12

    PythonでのDiscordボットのプログラミング-ボットに画像のグループからランダムな画像を送信させるにはどうすればよいですか?

  13. 13

    PythonでのDiscordボットのプログラミング-埋め込みでインデントするにはどうすればよいですか?

  14. 14

    Discord.py-音声チャンネルのIDを取得するにはどうすればよいですか?

  15. 15

    事前にダウンロードして変換せずに、pytubeからFFMPEGとdiscord.pyにオーディオをストリーミングするにはどうすればよいですか?

  16. 16

    herokuでdiscord.pyボットをホストするにはどうすればよいですか?

  17. 17

    herokuでdiscord.pyボットをホストするにはどうすればよいですか?

  18. 18

    discord.pyでリアクションを行うイベントを作成するにはどうすればよいですか?

  19. 19

    discord.pyの書き換え| これを整数にするにはどうすればよいですか?

  20. 20

    Discordでのボットのプログラミング-ボットにsubredditからランダムな画像を送信させるにはどうすればよいですか?

  21. 21

    discord.pyでpingコマンドを作成するにはどうすればよいですか?

  22. 22

    discord.pyでタイマーコマンドを作成するにはどうすればよいですか?

  23. 23

    Discord JDAのdiscordタグからユーザーを取得するにはどうすればよいですか?

  24. 24

    discord.pyのすべての役割を一覧表示するにはどうすればよいですか?

  25. 25

    このイベントにクールダウンまたはレート制限を追加するにはどうすればよいですか?discord.py

  26. 26

    このイベントにクールダウンまたはレート制限を追加するにはどうすればよいですか?discord.py

  27. 27

    discord.pyでカスタムサイクリングステータスを作成するにはどうすればよいですか?

  28. 28

    Discord.pyでユーザーのIDを取得するにはどうすればよいですか?

  29. 29

    discord.pyで自分のメッセージを削除するにはどうすればよいですか?

ホットタグ

アーカイブ