如何在PIL中将部分Alpha透明图像转换为单一(非透明)颜色?

Eua*_*uan 5 python image-manipulation python-imaging-library

我有一个标识,我需要制作成单色版本,例如全红色.例如,将此转换为:

在此输入图像描述

对此:

在此输入图像描述

我在PIL中尝试了各种技术(主要是Image.paste),但结果并不尊重边缘周围的部分alpha透明像素.

Mar*_*som 3

from PIL import Image

image = Image.open('logo.png')
assert im.mode.endswith('A'), 'This will only work with images having alpha!'

image.load()
alpha = image.split()[-1]
image2 = Image.new(image.mode, image.size, (255, 0, 0, 0))
image2.putalpha(alpha)

image2.save('logo-red.png')
Run Code Online (Sandbox Code Playgroud)