python通过PIL将两个图片叠加融合
我想到将一个图片去除背景将其放到另一张图片上以此实现融合。
1**. 打开想要融合的图片**
file = Image.open('6.png')
verse = '9.png'
我选取的两个图片
2**. 将附在上面的图片的背景进行透明化**
verse = transPNG(verse)# 图片背景透明化
def transPNG(srcImageName):img = Image.open(srcImageName)img = img.convert("RGBA")datas = img.getdata()newData = list()for item in datas:if item[0] > 220 and item[1] > 220 and item[2] > 220:newData.append((255, 255, 255, 0))else:newData.append(item)img.putdata(newData)return img
透明之后的图片(在电脑上背景应该是方格的那种就对了)
3**. 定义将图片放置的位置坐标**
注意你的第二张图片的大小,不要超出它的大小就可以
co = (450, 350)
4**. 将两个图片进行融合生成一个新的图片**
我是将每个点都进行了遍历,效率有点慢,有好方法的人士欢迎指点!!谢谢
file = mix(file, verse, co)# 图片融合
def mix(img1,img2,coordinator):im = img1mark = img2layer = Image.new('RGBA', im.size, (0, 0, 0, 0))layer.paste(mark, coordinator)out = Image.composite(layer, im, layer)return out