0

当我尝试:

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()

我沮丧地取回了非垂直居中的文本:

在此处输入图像描述

我究竟做错了什么?如何正确居中文本?

4

1 回答 1

0

这只是一个猜测,因为我无法在 Mac OS 上重现此问题,但看起来您的系统将文本锚定在左下角而不是左上角,因为它应该根据文档。

这可能是巧合,但看看这是否始终如一:

return draw.text(
    ((im.size[0] - text_size[0]) / 2, (im.size[1] + text_size[1]) / 2),
    text, font=font, **kwargs)
#                                                ^^^
于 2013-10-04T23:37:04.967 回答