寻找放置在黑白对象上时反转文本颜色的方法

looking for method to invert color of text when placed over black & white objects

我有一张黑白图像,有各种形状。
我想在图像上放置比某些黑白形状大的文本。为了保持文本的可读性而不是空白字母的某些部分,我希望 Python Pillow 中存在一种方法,允许将文本定位在图像上并反转每个文本像素的颜色(从已经存在于基本图像上的位置)。

如下图。

注意,我已经通过查看每个像素并反转来完成此操作。然而,那是极其缓慢的。我希望已知的方法更快。

同样,我正在寻找的是 PIL 中的一种方法,它可以在不进行逐像素调整的情况下创建下面的效果。我只是没有找到方法,因为我记得看到这在 PIL 中是可能的。谢谢

这是我在包含黑色矩形的图像上放置“文本”一词时试图达到的效果。

  • 您可能需要创建两个图像,
  • 然后使用“差异”混合模式混合它们。
  • 最上面的图片:您的文字
  • 底部图像:任何其他图像
  • pillow 似乎还不支持混合模式。试试这个扩展
  • 改为:https://pythonhosted.org/blend_modes/

我能想到两个图像之间的异同。但首先我假设您已经有一张 background 和一张 text 图像,它们都是彩色图像。这是我的代码:

from PIL import Image, ImageChops
# Change both images to binary (black-white) images
bg = Image.open("background.png") # open colour image
bg = bg.convert('1')
text = Image.open("text.png") # open colour image
text = text.convert('1')
# Xnor_image = invert(XOR(text, background))
bg = ImageChops.logical_xor(bg,text)
bg = ImageChops.invert(bg)

bg.save('res.png')

background.png text.png result.png