字
字
字字字字字字字字字字字
字 字
字字字字字字字
字
字
字字字字字字字字字字字
字
字
字字字
符 符
符符符符 符符符符符
符 符 符 符
符 符
符 符
符符 符符符符符符符
符 符 符
符 符 符
符 符 符
符 符
符 符符符
画画画画画画画画画画画
画 画画画画画画画 画
画 画 画 画 画
画 画 画 画 画
画 画画画画画画画 画
画 画 画 画 画
画 画 画 画 画
画 画画画画画画画 画
画 画
画画画画画画画画画画画
画
生
生 生
生 生
生生生生生生生生
生 生
生 生
生
生生生生生生生
生
生
生
生生生生生生生生生生生
成 成
成 成
成成成成成成成成成成
成 成
成 成
成成成成 成 成
成 成 成 成
成 成 成 成
成 成 成 成
成 成成 成 成 成
成 成 成成
成 成 成
器器器器 器器器器
器 器 器 器
器器器器 器器器器
器 器
器 器
器器器器器器器器器器器
器 器
器器 器器
器器 器器
器器器器 器器器器
器 器 器 器
器器器器 器器器器
代 代 代
代 代 代
代 代
代 代 代代代
代代 代代代代
代 代 代
代 代
代 代
代 代 代
代 代 代
代 代代
代 代
码码码码码码
码码码码 码
码 码 码
码 码 码
码 码 码
码码码 码码码码码码
码码 码 码
码 码 码
码 码码码码码码 码
码码码 码
码 码 码
码码
如
如
如 如如如如如
如如如如如 如 如
如 如 如 如
如 如 如 如
如 如 如 如
如 如 如 如
如 如 如 如
如 如 如
如 如 如如如如如
如 如 如 如
下下下下下下下下下下下
下
下
下 下
下 下
下 下
下 下
下 下
下
下
下
from PIL import Image, ImageDraw, ImageFont
def draw(font_name: str, string: str, font_size: int):
ret = ''
font = ImageFont.truetype(font_name, font_size, encoding='utf-8')
for char in string:
width, height = font.getsize(char)
img = Image.new('L', (width, height), color=0)
pen = ImageDraw.Draw(img)
pen.text((0, 0), char, fill=255, font=font)
for y in range(height):
line = ''
hold = ''
for x in range(width):
color = img.getpixel((x, y))
if color > 128:
line += hold+char[0]
hold = ''
else:
hold += ' '
ret += line+'\n'
return ret
if __name__ == '__main__':
print(draw(font_name='simsun.ttc', string='字符画生成器代码如下', font_size=12))