0

When I try:

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

I frustratingly get back non-vertically-centered text:

enter image description here

What am I doing wrong? How do I center the text correctly?

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 に答える