使用Python-PIL库将具有透明背景的图像垂直淡入透明

2024-09-30 08:21:19 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想淡出一个已经有透明背景的图像。在

我在this question中找到了非透明图像的解决方案,但它不适用于具有透明背景的图像。那么我该如何将透明背景的图像垂直淡入透明?在

例如,我希望old image这个图像变成new image这个,它仍然有透明的背景。在

这是我用来创建透明图像的代码

bg = Image.new("RGBA", (width, height), (r,g,b,inputBgAlpha))
...
bg.paste(deviceBg, devicePadding, mask=deviceBg)

下面是我尝试的。它会产生一个颜色而不是透明的背景。在

^{pr2}$

Tags: 代码图像imagenew解决方案thiswidthpaste
1条回答
网友
1楼 · 发布于 2024-09-30 08:21:19

对代码here稍作修改就可以使其正常工作:)

from PIL import Image

im = Image.open('bird.jpg')
width, height = im.size
pixels = im.load()
for y in range(int(height*.55), int(height*.75)):
    for x in range(width):
        alpha = pixels[x, y][3]-int((y - height*.55)/height/.20 * 255)
        if alpha <= 0:
            alpha = 0
        pixels[x, y] = pixels[x, y][:3] + (alpha,)
for y in range(y, height):
    for x in range(width):
        pixels[x, y] = pixels[x, y][:3] + (0,)
bg.save('birdfade.png')

相关问题 更多 >

    热门问题