如何在Python中更改图像的不透明度并与另一个图像合并

yel*_*w01 4 python python-imaging-library

我一直在研究如何将两张图片放在一起,将顶部图片调整到大约50%的透明度.

到目前为止,我设法找到了这个:

from PIL import Image

def merge():
    background = Image.open("ib.jpg")
    background = background .convert('L') #only foreground color matters
    foreground = Image.open("if.jpg")

    background.paste(foreground, (0, 0), foreground)
    background.show()
Run Code Online (Sandbox Code Playgroud)

但它只输出一张空白图像.

两者都是相同的大小.

ib.jpg:

ib.jpg

if.jpg:

if.jpg

期望的输出:

在此输入图像描述

有关使用RGB或RGBA文件执行此操作的方法的任何提示?我应该处理这两种类型(有些,实际上,有alpha层).

谢谢,

Ser*_*ity 6

你必须使用以下blend功能PIL.Image:

from PIL import Image
bg = Image.open("1.jpg")
fg = Image.open("2.jpg")
# set alpha to .7
Image.blend(bg, fg, .7).save("out.png")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述