![bfc62e8a57a7ad592ba5096a758fff89.png](https://img-blog.csdnimg.cn/img_convert/bfc62e8a57a7ad592ba5096a758fff89.png)
要在图像上绘制文本要用到 PIL
的两个模块:ImageDraw
和ImageFont
。 ImageDraw
用于创建绘图对象,ImageFont
用于加载字体,可以在这里进行字体下载。不下载也可以使用默认字体。
绘制文本只需四步就行了,直接上代码,用到的函数都有详细注释。
from PIL import Image, ImageDraw, ImageFont
chars = "你好啊 zll"
img_path = "bigwhite.jpg"
ttf_path = "fonts/HanYiZhongJianHei-2.ttf"
chars_x, chars_y = 50, 80
# 1. 加载图像文件
image = Image.open(img_path)
# 2. 加载字体并指定字体大小
# ttf = ImageFont.load_default() # 默认字体
ttf = ImageFont.truetype(ttf_path, 30)
# 3. 创建绘图对象
img_draw = ImageDraw.Draw(image)
# 4. 在图片上写字
# 第一个参数:指定文字区域的左上角在图片上的位置(x,y)
# 第二个参数:文字内容
# 第三个参数:字体
# 第四个参数:颜色RGB值
img_draw.text((chars_x, chars_y), chars, font=ttf, fill=(255,0,0))
# image.show()
# image.save("1.jpg")
![bc2e251582b3f5b182cb80fd336d1aa5.png](https://img-blog.csdnimg.cn/img_convert/bc2e251582b3f5b182cb80fd336d1aa5.png)
添加矩形框:将文字区域框选出来。
使用 `ttf.getsize` 得到文本区域,使用 `img_draw.polygon` 绘制矩形框。