【发布时间】:2017-04-18 08:07:09
【问题描述】:
所以我想淡出已经有透明背景的图像。
我在this question 中找到了不透明图像的解决方案,但它不适用于具有透明背景的图像。那么如何将具有透明背景的图像垂直淡化为透明呢?
这是我用来创建透明图像的代码
bg = Image.new("RGBA", (width, height), (r,g,b,inputBgAlpha))
...
bg.paste(deviceBg, devicePadding, mask=deviceBg)
以下是我尝试过的。它会产生带颜色而不是透明的背景。
# https://stackoverflow.com/a/19236775/2603230
arr = numpy.array(bg)
alpha = arr[:, :, 3]
n = len(alpha)
alpha[:] = numpy.interp(numpy.arange(n), [0, 0.55*n, 0.05*n, n], [255, 255, 0, 0])[:,numpy.newaxis]
bg = Image.fromarray(arr, mode='RGBA')
【问题讨论】:
标签: python png python-imaging-library transparency