python PIL 使文字绘制居中显示


  • 前言:在图片中绘制文字内容,如果希望文字内容居中绘制,就需要获取文字的大小和图片的大小结合做出调整
# 话不多说直接上代码??
# 首先我们需要一张图片(自己创建图片也可以)
path = "./pic/luxunshuo/002.png"
bg = Image.open(path)

draw = ImageDraw.Draw(bg) # 创建可以在给定图像上绘图的对象
text = '乌拉!'            # 文字内容
size = 25                 # 文字大小
color = (252,252,252)     # 文字颜色
font = './ttf/青鸟华光简魏体字体.ttf'   # 字体格式设置(可以自己下载ttf格式字体)
font = ImageFont.truetype(font,size) # 加载字体格式和字体大小

# ---------------------------------------------------------------------------
x0,y0 = bg.size                      # 获得图片的大小
ascent, descent = font.getsize(text) # 这里拿到文字内容的大小
x = x0/2-ascent/2 # 这里是文字内容的居中绘制算法
y = 230           # y坐标也可以根据x算法设置居中显示(y0/2-descent/2),我这里是自定义

draw.text((x,y),text,color,font = font) # 绘制 文字坐标 文字内容 颜色 字体

bg.show()
  • 效果如图??

image