如何修复图像的透明度?太平船务
How can i fix transparency in image? PIL
当我尝试 运行 这段代码时,我的图像损坏了
用户头像要透明
我想要这样制作:
我该如何解决这个问题?
import io
from PIL import Image, ImageDraw
im_rgb = Image.open('cards/customcard1.png')
im_a = Image.new("RGBA", im_rgb.size, 0)
im_a.paste(im_rgb)
draw = ImageDraw.Draw(im_a)
draw.ellipse((92, 193, 403, 504), fill=255)
memberavatar = await _ctx.author.avatar_url.read()
def rounded_avatar(member):
with Image.open(io.BytesIO(member)) as im:
with Image.new("RGBA", im.size) as background:
rgb_avatar = im.convert("RGBA")
with Image.new("L", im.size, 0) as mask:
mask_draw = ImageDraw.Draw(mask)
mask_draw.ellipse([(0, 0), im.size], fill=255)
background.paste(rgb_avatar, (0, 0), mask=mask)
return background
roundedAvatar = rounded_avatar(memberavatar)
roundedAvatar = roundedAvatar.resize((311, 311), Image.ANTIALIAS)
roundedAvatar.save('cards/roundedAva.png')
r = Image.open('cards/roundedAva.png').convert('RGBA')
im_a.paste(r, (92, 193))
im_a.save('C:/Users/RAINGM/desktop/hueta.png')
im_a.show()
我用 Image.alpha_composite()
解决了这个问题
当我尝试 运行 这段代码时,我的图像损坏了
用户头像要透明
我想要这样制作:
我该如何解决这个问题?
import io
from PIL import Image, ImageDraw
im_rgb = Image.open('cards/customcard1.png')
im_a = Image.new("RGBA", im_rgb.size, 0)
im_a.paste(im_rgb)
draw = ImageDraw.Draw(im_a)
draw.ellipse((92, 193, 403, 504), fill=255)
memberavatar = await _ctx.author.avatar_url.read()
def rounded_avatar(member):
with Image.open(io.BytesIO(member)) as im:
with Image.new("RGBA", im.size) as background:
rgb_avatar = im.convert("RGBA")
with Image.new("L", im.size, 0) as mask:
mask_draw = ImageDraw.Draw(mask)
mask_draw.ellipse([(0, 0), im.size], fill=255)
background.paste(rgb_avatar, (0, 0), mask=mask)
return background
roundedAvatar = rounded_avatar(memberavatar)
roundedAvatar = roundedAvatar.resize((311, 311), Image.ANTIALIAS)
roundedAvatar.save('cards/roundedAva.png')
r = Image.open('cards/roundedAva.png').convert('RGBA')
im_a.paste(r, (92, 193))
im_a.save('C:/Users/RAINGM/desktop/hueta.png')
im_a.show()
我用 Image.alpha_composite()
解决了这个问题