自古真情留不住,唯有套路得人心
图片隐藏文字(Python)
将自己所要表达的文字隐藏于图片之中,放大图后可以看到
实现代码
from PIL import Image, ImageDraw, ImageFont
font_size = 5
# text = "我喜欢你!"
text_path = 'C:/Users/Delong/Desktop/text.txt'
f = open(text_path, 'r', encoding='utf-8')
text = f.read()
img_path = "C:/Users/Delong/Desktop/a.jpg"
# 首先,使用 pillow.Image读取图像,并使用load函数获取到每一个像素值。
img_raw = Image.open(img_path)
img_array = img_raw.load()
# 然后新建一张画布,并选好你要使用的字体和字体大小。
img_new = Image.new("RGB", img_raw.size, (0, 0, 0))
draw = ImageDraw.Draw(img_new)
font = ImageFont.truetype('C:/Users/Delong/Desktop/msyh.ttc', font_size)
# 由于需要不断循环你所需要表达的文字(例如:“我喜欢你!”,这五个字符)。所以这里可以while循环 yield 来实现一个生成器。
def character_generator(text):
while True:
for i in range(len(text)):
yield text[i]
ch_gen = character_generator(text)
# 最后,要给这些字加上相应的颜色,写入新创建的画布中。
for y in range(0, img_raw.size[1], font_size):
for x in range(0, img_raw.size[0], font_size):
draw.text((x, y), next(ch_gen), font=font, fill=img_array[x, y], direction=None)
# 将成品保存
img_new.convert('RGB').save("C:/Users/Delong/Desktop/save.jpeg")