寻找放置在黑白对象上时反转文本颜色的方法
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
我有一张黑白图像,有各种形状。
我想在图像上放置比某些黑白形状大的文本。为了保持文本的可读性而不是空白字母的某些部分,我希望 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