【问题标题】:How to crop an image to a shape for eg. circle using Pillow in Discord.py?如何将图像裁剪为例如形状。在 Discord.py 中使用 Pillow 圈?
【发布时间】:2021-03-06 02:44:54
【问题描述】:

如何将图像裁剪为例如形状。在 Discord.py 中使用 Pillow 循环?

我当前的代码:

@client.event
async def on_member_join(member : discord.Member):
    welcome = Image.open('Welcome.jpg')
    
    asset = member.avatar_url_as(size = 128)
    data = BytesIO(await asset.read())
    pfp = Image.open(data)
    pfp = pfp.resize((500, 500))
    welcome.paste(pfp, (657, 257))
    welcome.save("profile.jpg")

【问题讨论】:

    标签: python python-imaging-library discord.py image-manipulation


    【解决方案1】:

    试试这个

    import numpy as np
    from PIL import Image, ImageDraw
    
    @client.event
    async def on_member_join(member : discord.Member):
        welcome = Image.open('Welcome.jpg')
        
        asset = member.avatar_url_as(size = 128)
        data = BytesIO(await asset.read())
        img=Image.open(data).convert("RGB")
        npImage=np.array(img)
        h,w=img.size
        
        alpha = Image.new('L', img.size,0)
        draw = ImageDraw.Draw(alpha)
        draw.pieslice([0,0,h,w],0,360,fill=255)
        npAlpha=np.array(alpha)
        npImage=np.dstack((npImage,npAlpha))
        pfp = Image.fromarray(npImage)
        welcome.paste(pfp, (657, 257))
        welcome.save("profile.jpg")
        
    

    【讨论】:

    • 您应该解释每个步骤中发生的情况。否则,提问者无法学习如何正确地做到这一点。
    • 我明白@Cloud
    • 太棒了!不过,其他有相同问题的人可能会从解释中受益。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多