今天查PIL合成图片国内的资料不是太复杂就是相互抄,搞股了半天也没一个能用的,用渣渣英语查了一下谷歌,秒解决。
准备工作:
1: 确保两张图片是一个格式,图片在生成的时候, 不知道会用什么压缩工具,会导致格式不一致,这是我花了好长时间才发现的坑,如何看格式图片格式:
foreground= Image.open("./a.png")
background= Image.open("./b.png")
print(background)
print(foreground)
这时会打印log
<PIL.PngImagePlugin.PngImageFile image mode=RGBA size=512x512 at 0x117C249E8>
<PIL.PngImagePlugin.PngImageFile image mode=RGBA size=512x512 at 0x10AA30E48>
mode = RGBA就说明现在可以完美合成图片了,这样既可以合成透明通道部分,也可以合成普通图片合成。
2: 图片准备完毕就合成图片,代码就三行
final2 = Image.new("RGBA", background.size)
final2 = Image.alpha_composite(final2, background)
final2 = Image.alpha_composite(final2, foreground)
final2.show()
final2.save("./my.png")
图片的合成就我这几行代码全部搞定,中文搜索图片合成全是看不懂的天书,希望能帮到大家。
借鉴文章,做一个有素质的简书er:
https://stackoverflow.com/questions/5324647/how-to-merge-a-transparent-png-image-with-another-image-using-pil
https://juejin.im/post/5a5c51f7f265da3e498007be
网友评论