python将文本转换成图片输出,支持自动换行

2022-04-20 00:00:00 输出 转换成 换行

python将指定的文本绘制在一张空白图片上,直接将文字转换成图片输出,可以指定图片宽度,超出会自动换行

"""
皮蛋编程(https://www.pidancode.com)
创建日期:2022/4/3
功能描述:python将文本转换成图片输出
"""

from PIL import Image, ImageFont, ImageDraw

text = '欢迎访问:https://www.pidancode.com'
font = ImageFont.truetype("./font.otf", 18)
lines = []
line = ''
for word in text:
    print(word)
    if font.getsize(line + word)[0] >= 300:
        lines.append(line)
        line = ''
        line += word
        print('size=', font.getsize(line + word)[0])
    else:
        line = line + word
lines.append(line)

line_height = font.getsize(text)[1]
img_height = line_height * (len(lines) + 1)
print('len=', len(lines))
print('lines=', lines)
im = Image.new("RGB", (300, img_height), (255, 255, 255))
dr = ImageDraw.Draw(im)
x, y = 5, 5
for line in lines:
    dr.text((x, y), line, font=font, fill="#000000")
    y += line_height
im.show()
im.save("1.1.jpg")

代码在python3.9下测试通过。

相关文章