在图片上绘制文本,使用image对象的text方法和multiline text方法。前者绘制单行文本,后者绘制多行文本。两个方法的语法格式如下所示。
code.python
draw.text(xy,text,fill=None,font=None,anchor=None,spacing=4,align='left',direction=None)
draw.multiline_text(xy,text,fill=None,font=None,anchor=None,spacing=4,align='left',direction=None)
其中,xy参数指定的位置,text参数指定文本的内容,fill参数指定文本的颜色,font参数指定文本的字体属性,包括字体名称、大小等。spacing指定多行文本的行间距。align指定对齐方式,direction参数指定文本的绘制方向。
font参数的值是一个ImageFont对象实例。所以首先要导入ImageFont这个模块。生成font对象有下面几种方式:
code.python
ImageFont.load_default()
ImageFont.load(filename)
ImageFont.truetype(font=None,size=10)
三种语法格式分别加载默认字体、指定字体和truetype字体。
下面的代码打开指定图片文件,并在图片上用truetype字体绘制指定文本。
code.python
>>> from PIL import Image,ImageDraw,ImageFont
>>> img=Image.open('D:\\pic.jpg')
>>> draw=ImageDraw.Draw(img)
>>> font=ImageFont.truetype('C:\\Windows\\Boot\\Fonts\\msyhn_boot.ttf',size=30)
>>> draw.text(xy=(250,250),text='Hello pillow文本',font=font)
>>> draw.show()
效果如下图所示。