使用PIL进行Alpha合成时遇ValueError: images do not match报错求助
解决PIL中Image.alpha_composite触发ValueError: images do not match的问题
错误原因
Image.alpha_composite()对输入图片有两个硬性要求:
- 两张图片尺寸完全一致
- 两张图片均为RGBA模式(带透明通道)
你的代码仅保证了尺寸匹配,但Background.png大概率是RGB模式(无透明通道),和你创建的RGBA模式底图不兼容,因此触发报错。
修复方案
将所有参与合成的图片统一转换为RGBA模式,同时保留尺寸匹配逻辑。
修改后的代码
from PIL import Image # 加载图片并统一转换为RGBA模式 bg = Image.open('Background.png').convert('RGBA') baseman = Image.open('Baseman.png').convert('RGBA') # 调整baseman尺寸匹配bg baseman = baseman.resize(bg.size) # 创建RGBA模式的底图 result = Image.new('RGBA', bg.size) # 执行alpha合成 result = Image.alpha_composite(result, bg) result = Image.alpha_composite(result, baseman) # 保存结果 result.save('result.png')
内容的提问来源于stack exchange,提问作者Yasna
相关产品推荐
相关产品推荐

