python实现两个图片的叠加融合

python通过PIL将两个图片叠加融合

我想到将一个图片去除背景将其放到另一张图片上以此实现融合。

1**. 打开想要融合的图片**

file = Image.open('6.png')
verse = '9.png'

我选取的两个图片
python实现两个图片的叠加融合_第1张图片
python实现两个图片的叠加融合_第2张图片

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

透明之后的图片(在电脑上背景应该是方格的那种就对了)
python实现两个图片的叠加融合_第3张图片

3**. 定义将图片放置的位置坐标**
注意你的第二张图片的大小,不要超出它的大小就可以

co = (450, 350)

4**. 将两个图片进行融合生成一个新的图片**
我是将每个点都进行了遍历,效率有点慢,有好方法的人士欢迎指点!!谢谢

file = mix(file, verse, co)

# 图片融合
def mix(img1,img2,coordinator):
    im = img1
    mark = img2
    layer = Image.new('RGBA', im.size, (0, 0, 0, 0))
    layer.paste(mark, coordinator)
    out = Image.composite(layer, im, layer)
    return out

python实现两个图片的叠加融合_第4张图片

你可能感兴趣的:(python,python)