我需要一个比较两个相同大小的PIL图像的功能。我们称它们为A和B.结果应该是一个相同大小的新图像。如果A和B中的像素相同,则应将其设置为固定颜色(例如黑色),否则应将其设置为与B相同的颜色。
是否有用于实现此功能的库而没有对所有像素进行昂贵的循环?
答案 0 :(得分:17)
不确定其他库,但您可以使用PIL执行此操作,例如......
from PIL import Image, ImageChops
point_table = ([0] + ([255] * 255))
def black_or_b(a, b):
diff = ImageChops.difference(a, b)
diff = diff.convert('L')
diff = diff.point(point_table)
new = diff.convert('RGB')
new.paste(b, mask=diff)
return new
a = Image.open('a.png')
b = Image.open('b.png')
c = black_or_b(a, b)
c.save('c.png')