Python:用透明背景反转图像(PIL,Gimp,...)

Hof*_*off 5 python transparency gimp python-imaging-library

我在透明背景上有一组白色图标,我想将它们全部反转为透明背景上的黑色.

在此输入图像描述

尝试使用PIL(ImageChops),但它似乎不适用于透明背景.我也尝试过Gimp的Python界面,但也没有运气.

知道如何在Python中最好地实现反转吗?

Aco*_*orn 5

ImageChops.invert 似乎也反转了每个像素的alpha通道.

这应该做的工作:

import Image

img = Image.open('image.png').convert('RGBA')

r, g, b, a = img.split()

def invert(image):
    return image.point(lambda p: 255 - p)

r, g, b = map(invert, (r, g, b))

img2 = Image.merge(img.mode, (r, g, b, a))

img2.save('image2.png')
Run Code Online (Sandbox Code Playgroud)