您可能知道 Photoshop 等专业图像编辑程序的“颜色到透明度”效果。这个效果是怎么做的?我想用 Python 以编程方式为我的图像添加一些透明度(以及测试 PIL,因为我可以检查生成的图像)。这种效果将用于一些分形的东西,所以这是我当前的代码:
i = "i.png"
o = "o.png"
key = (0, 0, 0, 255)
from PIL import Image as I
_i = I.open(i)
_ii = _i.load()
_o = I.new("RGBA", _i.size)
_oo = _o.load()
for x in range(0, _i.size[0]):
for y in range(0, _i.size[1]):
col = list(_ii[x, y])
for i in range(0, 4):
col[i] = abs(col[i] - key[i])
_oo[x, y] = tuple(col)
_o.save(o)
我想减去这两种颜色,但我最终得到黑色图像(丢失所有 alpha)。另一个想法是将原始颜色加倍并检查键是否较低,例如反向混合两种颜色。
那么,你有什么想法吗?
编辑
这种效果是通过 GIMP 使用它的“颜色到透明度”功能完成的。我选择#FFF 是透明的,而 GIMP 以某种方式将白色变为透明,一开始没有忽略像素的颜色。这就是我真正想要做的,使图像中的颜色透明,就像在图像中一样。
(我在第二张图片中添加了黑色背景,所以你知道它是透明的。原始图像就像第一张一样,白色背景,略带绿色的周围,黑色中心)