问题描述
因此,当我运行这段代码时,output.png变成一个圆(应该发生),但是当它粘贴到背景时,由于某种原因它变成了一个正方形。我想知道为什么会这样。
mask = Image.open('mask.png').convert('L')
output = ImageOps.fit(img,mask.size,centering=(0.5,0.5))
output.putalpha(mask)
output.save('output.png')
bg = Image.open("background.png")
bg.paste(output,(390,50))
bg.save("level.png")
解决方法
Image.paste
不适用于粘贴图像(output
)中的Alpha通道,但是您可以为mask
指定paste()
参数(请参阅:{{3} })直接:
mask = Image.open('mask.png').convert('L')
output = ImageOps.fit(img,mask.size,centering=(0.5,0.5))
bg = Image.open("background.png")
bg.paste(output,(390,50),mask=mask)
bg.save("level.png")
也无需在output
图像中添加Alpha。