实现两张图的合成。两种情况:两张非透明图的合成;涉及透明图的合成。
1.第一类:直接将两张图和在一起就行,选好位置粘贴覆盖。(适合规则图合并)
from PIL import Image
#加载底图
base_img = Image.open(ur'9.png')#加载底图
# 可以查看图片的size和mode,常见mode有RGB和RGBA,RGBA比RGB多了Alpha透明度
# print base_img.size, base_img.mode
box = (60, 44, 130, 120) # 底图上需要P掉的区域
#加载需要P上去的图片
tmp_img = Image.open(ur'12.png')#要粘贴的图可选择大小或整张
#这里可以选择一块区域或者整张图片
#region = tmp_img.crop((10,10,100,110)) #选择一块区域
region = tmp_img#使用整张
#使用 paste(region, box) 方法将图片粘贴到另一种图片上去.
#注意,region的大小必须和box的大小完全匹配。但是两张图片的mode可以不同,合并的时候回自动转化。如果#需要保留透明度,则使用RGMA mode
#提前将图片进行缩放,以适应box区域大小
# region = region.rotate(180) #对图片进行旋转
region = region.resize((box[2] - box[0], box[3] - box[1]))
base_img.paste(region, box)
base_img.show() # 查看合成的图片
base_img.save('./out.png') #保存图片