Python 使用 PIL Image 叠加/合成 透明的PNG图片
目录
本例子实现实现PIL Image 叠加/合成透明的PNG图片。
使用 PIL的原因是因为叠加/合成速度快,如果使用OpenCV的方法,叠加/合成效率比较低。
测试素材准备
背景图 Python-logo-s.png
(可鼠标右键点击保存)
需要叠加/合成的透明PNG图 ls-logo.png
(可鼠标右键点击保存)
实现代码
把两张测试图片,放在与程序文件在同一目录下
输入以下代码
# welcome https://lingshunlab.com
from PIL import Image # 加载PIL库的Image
bg = Image.open('Python-logo-s.png').convert('RGB') # 背景图片,需要读取为RGB,3通道的格式
layer = Image.open('ls-logo.png').convert('RGBA') # 叠加的透明PNG图片,需要读取为RGBA,4通道的格式
bg.paste(layer, (300,250), layer) # 在bg图像上叠加/合成layer图像
bg.size # bg图像的大小
bg # 在Jupyter-lab上直接预览合成效果
#如果是不是使用Jupyter lab 进行代码测试,可使用OpenCV的方法显示在桌面显示图像
最终效果
Juptyer lab 运行的结果如下: