当我尝试:
import Image
import ImageDraw
import ImageFont
def draw_text_center(im, draw, text, font, **kwargs):
text_size = draw.textsize(text, font)
return draw.text(
((im.size[0] - text_size[0]) / 2, (im.size[1] - text_size[1]) / 2),
text, font=font, **kwargs)
im = Image.new('L', (64, 64), 0xFF)
draw = ImageDraw.Draw(im)
draw_text_center(
im, draw, "Hello",
ImageFont.truetype(os.path.expandvars("%SystemRoot%/Fonts/segoeui.ttf"), 16))
del draw
im.show()
我沮丧地回到非垂直居中的文字:
我做错了什么?如何正确居中文本?
答案 0 :(得分:0)
这只是一个猜测,因为我无法在Mac OS上重现此问题,但它看起来就像您的系统通过 lower 左角锚定文本一样而不是上左角,因为它应该根据文档。
这可能是巧合,但看看这是否一致:
return draw.text(
((im.size[0] - text_size[0]) / 2, (im.size[1] + text_size[1]) / 2),
text, font=font, **kwargs)
# ^^^