输出图像不是使用 Pillow in discord 的正确圆形裁剪图像
The output image is not a proper circular cropped image using Pillow in discord
layout = Image.open(r"./meme_templates/heaven.jpg")
asset = member.avatar_url_as(size=128)
data = BytesIO(await asset.read())
pfp = Image.open(data)
bigsize = (pfp.size[0] * 3, pfp.size[1] * 3)
mask = Image.new('L', bigsize, 0)
draw = ImageDraw.Draw(mask)
draw.ellipse((0, 0) + bigsize, fill=255)
mask = mask.resize(pfp.size, Image.ANTIALIAS)
mask = ImageChops.darker(mask, pfp.split()[-1])
pfp.putalpha(mask)
pfp = pfp.resize((93, 93))
layout.paste(pfp, (162, 92))
draw = ImageDraw.Draw(layout)
font1 = ImageFont.truetype("./OpenSans-Bold.ttf", 32)
font2 = ImageFont.truetype("./BullettoKilla.ttf", 24)
font3 = ImageFont.truetype("./BullettoKilla.ttf", 46)
imgdesc = f"{member}"
w, h = draw.textsize(imgdesc)
imgmssg = f"Welcome to DIVINE! Hope you have a blessed stay!"
draw.text((275, 112), imgdesc, (0, 0, 0), font1)
draw.text((45, 217), imgmssg, (0, 0, 0), font2)
draw.text((194, 14), "WELCOME!", (0, 0, 0), font3)
layout.save(r"./meme_templates/heavenedit.jpg")
await channel.send(file=discord.File(r"./meme_templates/heavenedit.jpg"))
这是我的代码。
我的输出方式如下,
1: Output imagehttps://i.stack.imgur.com/j8LzM.png
我希望我的个人资料图片输出是完美的圆形裁剪图像。
任何形式的帮助将不胜感激。谢谢
我没怎么用过PIL,问题可能出在粘贴图片的时候,你没有通过alpha mask。
layout.paste(pfp, (162, 92), pfp)
layout = Image.open(r"./meme_templates/heaven.jpg")
asset = member.avatar_url_as(size=128)
data = BytesIO(await asset.read())
pfp = Image.open(data)
bigsize = (pfp.size[0] * 3, pfp.size[1] * 3)
mask = Image.new('L', bigsize, 0)
draw = ImageDraw.Draw(mask)
draw.ellipse((0, 0) + bigsize, fill=255)
mask = mask.resize(pfp.size, Image.ANTIALIAS)
mask = ImageChops.darker(mask, pfp.split()[-1])
pfp.putalpha(mask)
pfp = pfp.resize((93, 93))
layout.paste(pfp, (162, 92))
draw = ImageDraw.Draw(layout)
font1 = ImageFont.truetype("./OpenSans-Bold.ttf", 32)
font2 = ImageFont.truetype("./BullettoKilla.ttf", 24)
font3 = ImageFont.truetype("./BullettoKilla.ttf", 46)
imgdesc = f"{member}"
w, h = draw.textsize(imgdesc)
imgmssg = f"Welcome to DIVINE! Hope you have a blessed stay!"
draw.text((275, 112), imgdesc, (0, 0, 0), font1)
draw.text((45, 217), imgmssg, (0, 0, 0), font2)
draw.text((194, 14), "WELCOME!", (0, 0, 0), font3)
layout.save(r"./meme_templates/heavenedit.jpg")
await channel.send(file=discord.File(r"./meme_templates/heavenedit.jpg"))
这是我的代码。 我的输出方式如下,
1: Output imagehttps://i.stack.imgur.com/j8LzM.png
我希望我的个人资料图片输出是完美的圆形裁剪图像。 任何形式的帮助将不胜感激。谢谢
我没怎么用过PIL,问题可能出在粘贴图片的时候,你没有通过alpha mask。
layout.paste(pfp, (162, 92), pfp)