【Python】pillow库学习笔记4-利用ImageDraw和ImageFont在图像上添加文字
部分内容摘自C语言中文网:https://c.biancheng.net/pillow/add-watermark.html
4.ImageDraw
ImageDraw 模块提供了一系列的绘图方法,通过该模块可以创建一个新的图形,或者在现有的图像上再绘制一个图形,从而起到对原图注释和修饰的作用。
draw = ImageDraw.Draw(im)
上述方法会返回一个 ImageDraw 对象,参数 im 表示 Image 对象。
ImageDraw常用方法:
方法 | 说明 |
---|---|
text | 在图像上绘制文字 |
line | 绘制直线、线段 |
eclipse | 绘制椭圆形 |
rectangle | 绘制矩形 |
polygon | 绘制多边形 |
例:在图像上绘制矩形
from PIL import Image,ImageDraw
#im = Image.new('RGB',(200,200),color='gray')#创建 Image 对象,当做背景图
im = Image.open('村庄2.jfif')#打开已有图片
#创建 ImageDraw 对象
draw = ImageDraw.Draw(im)
#以左上角为原点,绘制矩形。元组坐标序列表示矩形的位置、大小;fill设置填充色为红色,outline设置边框线为黑色
draw.rectangle((1340,1040,1470,1140),fill=None,outline=(255,0,0))
#查看原图片
im.show()
#保存图片
im.save("添加矩形图.png")
蓝色屋顶处添加了红色矩形框,没有设置填充颜色。
5.ImageFont
ImagreFont 模块通过加载不同格式的字体文件,从而在图像上绘制出不同类型的文字,比如 TrueType 和 OpenType 类型的字体。
创建字体对象的语法格式如下:
font = ImageFont.truetype(font='字体文件路径', size=字体大小)
如果想要在图片上添加文本,还需要使用 ImageDraw.text() 方法,语法格式如下:
d.text((x,y), "text", font, fill)
参数说明如下:
(x,y):图像左上角为坐标原点,(x,y) 表示添加文本的起始坐标位置;
text:字符串格式,要添加的文本内容;
font:ImageFont 对象;
fill:文本填充颜色。
例:添加文字说明
from PIL import Image,ImageFilter,ImageFont,ImageDraw
im = Image.open('村庄2.jfif')
font=ImageFont.truetype('C:/Windows/Fonts/simhei.ttf',size=72) #加载本地字体,黑体,72
om1 = im.filter(ImageFilter.GaussianBlur(3))#高斯模糊
draw = ImageDraw.Draw(om1)#创建画布对象
#在原图像上添加文本
draw.text(xy=(80,50),text='GaussianBlur高斯模糊',fill=(255,0,0),font=font)
om1.save('p//aGaussianBlur.jpg')
运行结果