Nic*_*ick 3 python rgb transparency pixel python-imaging-library
有没有办法使用evalPIL中的函数来遍历所有像素,同时检查每个值是什么?程序通过一个图像来查看每个像素是否是某个rgb,如果是,则它会将该像素转换为透明度.evalPIL中的函数似乎可以完成这项工作,但是我的转换像素的函数可以检查它所在像素的值吗?提前致谢.
sam*_*ias 11
更新:啊,我明白你想做什么.这是仅使用PIL的示例.它将所有白色像素转换为红色且50%alpha:
import Image
img = Image.open('stack.png').convert('RGBA')
width, _ = img.size
for i, px in enumerate(img.getdata()):
if px[:3] == (255, 255, 255):
y = i / width
x = i % width
img.putpixel((x, y), (255, 0, 0, 127))
img.save('stack-red.png')
Run Code Online (Sandbox Code Playgroud)


原始答案:是的,该Image.eval()功能允许您传入一个评估每个像素的函数,并让您确定一个新的像素值:
import Image
img1 = Image.open('foo.png')
# replace dark pixels with black
img2 = Image.eval(img1, lambda px: 0 if px <= 64 else px)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5288 次 |
| 最近记录: |