所以我试着用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')
My problem?我也希望我的文本居中,我说的是你在Word或任何基本的文本编辑器中看到的居中。例如,文本可以居中居左、居中或居右。See this image.
发布于 2018-07-28 05:36:57
您对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")
https://stackoverflow.com/questions/45154731
复制相似问题