【发布时间】:2013-06-12 17:25:01
【问题描述】:
您可能知道 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 以某种方式将白色变为透明,一开始没有忽略像素的颜色。这就是我真正想要做的,使图像中的颜色透明,就像在图像中一样。
(我在第二张图片中添加了黑色背景,所以你知道它是透明的。原始图像就像第一张一样,白色背景,略带绿色的周围,黑色中心)
【问题讨论】:
-
查看这篇维基百科文章:en.wikipedia.org/wiki/…
-
这篇文章我读了好几遍,但实际上我没有明白。可能是因为我在编码之夜后很累......你能帮我解决这个问题吗?
标签: python image-processing python-imaging-library