话不多说直接上代码:
from PIL import Image, ImageDraw, ImageFont
import numpy as np
# 打开源图片
img = np.array(Image.open('3.jpg'))
# 创建图像, 修改参数
blank = Image.new("RGB", [len(img[0]) * 10, len(img) * 10], "white") # 图片大小尺寸
draw = ImageDraw.Draw(blank)
# 设置字体和字号
font = ImageFont.truetype('msyhbd.ttc', size=15)
s = "生日快乐呀哈"
# 步长为2的循环
for i in range(0, len(img), 2):
for j in range(0, len(img[0]), 2):
draw.ink = img[i][j][0]+img[i][j][1]*256 + img[i][j][2]*256 * 256
draw.text([j * 10, i * 10], s[int(j / 2) % len(s)], font=font)
print(i / len(img))
blank.save('生日快乐.jpg')
原图片如下:
由于图片大小超过5M不能上传,执行完代码之后的图片的截图如下:
效果就是如此,但是唯一的缺点就图片太大,可能有三十兆左右大小。