Python PIL - >以长文本为中心

时间:2017-07-17 22:39:20

标签: python python-imaging-library

所以我试图用Python将一些文本放在图像上。

无论文本有多长,我都希望我的文字位于图像的中心。这个,我设法做到了。

这是我的代码:

from PIL import Image, ImageDraw, ImageFont
import textwrap

astr = '''The rain in Spain falls mainly on\n the plains. but what if I add some\n more text to this image###################\n##################################?\nThe rain in Spain falls mainly on\n the plains. but what if I add some\n more text to this image###################\n##################################?'''

im = Image.open("source.jpg")
MAX_W, MAX_H = im.size
draw = ImageDraw.Draw(im)
font = ImageFont.truetype('font.otf', 28)

w, h = draw.textsize(astr, font=font)

draw.text(((MAX_W - w) / 2, (MAX_H - h) / 2),astr,(255,255,255),font=font)

im.save('test.png')
  

我的问题?我也想让我的文字居中,我正在谈论   您在Microsoft Word中看到的中心(例如)或任何基本的中心   文本编辑器。就像,文本可以居中左侧,中间,   或权利。 See this image.

1 个答案:

答案 0 :(得分:0)

您对http://pillow.readthedocs.io/en/5.2.x/reference/ImageDraw.html#PIL.ImageDraw.PIL.ImageDraw.ImageDraw.text中的'align'参数感兴趣-它可以是“ left”,“ center”或“ right”。

draw.text(((MAX_W - w) / 2, (MAX_H - h) / 2),astr,(255,255,255),font=font,align="center")