Python枕头生成图像错误
Python pillow generates image wrong
所以我正在尝试使用 python 和枕头制作排名卡。
黑色背景下一切正常。
这是黑色背景下的样子:
背景:
但是当我向背景添加颜色(例如蓝色)时,图像看起来真的很奇怪:
背景:
这是我用来生成排名卡的代码
def rankcardbuilder(username, level, xpgot, xpneed, color):
try:
# Get Images
background = Image.open("assets/test.png")
mask = Image.open("assets/largemask.png").convert("L")
avatar = Image.open("assets/avatar.png")
# Get Local Font
font = ImageFont.truetype("assets/Comfortaa-Bold.ttf", 46)
fontsmall = ImageFont.truetype("assets/Comfortaa-Bold.ttf", 35)
fontsmaller = ImageFont.truetype("assets/Comfortaa-Bold.ttf", 18)
# Add Text
finalimage = ImageDraw.Draw(background)
finalimage.text((320, 95), username, ("white"), font=font)
finalimage.text((320, 155), f"Level {level} Rank #1", ("white"), font=fontsmall)
finalimage.text((425, 200), f"{xpgot:,}/{xpneed:,} XP", ("white"), font=fontsmaller)
# Round & Place the avatar
roundavatar = ImageOps.fit(avatar, mask.size, centering=(0.5, 0.5))
roundavatar.putalpha(mask)
background.paste(roundavatar, (40, 45), roundavatar)
# Generate Progress Bar
bar = Image.open('assets/progresssmall.png').convert('RGB')
draw = ImageDraw.Draw(bar)
color = (255, 255, 255)
x = 0
y, diam = 4, 17
draw.ellipse([x, y, x + diam, y + diam], fill=color)
ImageDraw.floodfill(bar, xy=(7, 12), value=color, thresh=40)
background.paste(bar, (314, 220))
# Save generated Rankcard
background.save("assets/rankcard.png")
我是不是做错了什么?
您的背景图片似乎已调色。你不想要那个;你应该转换成 RGBA。
所以我正在尝试使用 python 和枕头制作排名卡。
黑色背景下一切正常。
这是黑色背景下的样子:
背景:
但是当我向背景添加颜色(例如蓝色)时,图像看起来真的很奇怪:
背景:
这是我用来生成排名卡的代码
def rankcardbuilder(username, level, xpgot, xpneed, color):
try:
# Get Images
background = Image.open("assets/test.png")
mask = Image.open("assets/largemask.png").convert("L")
avatar = Image.open("assets/avatar.png")
# Get Local Font
font = ImageFont.truetype("assets/Comfortaa-Bold.ttf", 46)
fontsmall = ImageFont.truetype("assets/Comfortaa-Bold.ttf", 35)
fontsmaller = ImageFont.truetype("assets/Comfortaa-Bold.ttf", 18)
# Add Text
finalimage = ImageDraw.Draw(background)
finalimage.text((320, 95), username, ("white"), font=font)
finalimage.text((320, 155), f"Level {level} Rank #1", ("white"), font=fontsmall)
finalimage.text((425, 200), f"{xpgot:,}/{xpneed:,} XP", ("white"), font=fontsmaller)
# Round & Place the avatar
roundavatar = ImageOps.fit(avatar, mask.size, centering=(0.5, 0.5))
roundavatar.putalpha(mask)
background.paste(roundavatar, (40, 45), roundavatar)
# Generate Progress Bar
bar = Image.open('assets/progresssmall.png').convert('RGB')
draw = ImageDraw.Draw(bar)
color = (255, 255, 255)
x = 0
y, diam = 4, 17
draw.ellipse([x, y, x + diam, y + diam], fill=color)
ImageDraw.floodfill(bar, xy=(7, 12), value=color, thresh=40)
background.paste(bar, (314, 220))
# Save generated Rankcard
background.save("assets/rankcard.png")
我是不是做错了什么?
您的背景图片似乎已调色。你不想要那个;你应该转换成 RGBA。