"Якоря" для текста не работают в Pilliow

"Якоря" для текста не работают, привязка постоянно в левом верхнем углу от заданных координат.

Код брал из документации (https://pillow.readthedocs.io/en/stable/handbook/text-anchors.html). Использовал шрифт TrueType, как и описано в документации.

Код запускался в Colaboratory от Google. (может в этом и причина?)

Pillow 8.2.0, Python 3.7.10

from PIL import Image, ImageDraw, ImageFont

W, H = 512, 320
ZERO = (0, 0)

img = Image.new('RGB', (W, H), 'dodgerblue')
imd = ImageDraw.Draw(img)
fnt = ImageFont.truetype(font='KZ_SamsungSharpSans.ttf', size=36)

imd.line(((W/2, 0), (W/2, H)), fill='black', width=1)
imd.line(((0, H/2), (W, H/2)), fill='black', width=1)
imd.text((W/2, H/2), 'Здарова,\nmy comrades\nӘӘӘҰҰҰҚҚҚҚ', fill='azure', anchor='mm', font=fnt, align='center')

img

Результат


Ответы (1 шт):

Автор решения: handowl

Я не знаю, что именно у вас не работает. НО Вот рабочий код. Возможно, надо добавить формат изображения.

from PIL import Image, ImageDraw, ImageFont

W, H = 500, 500

img = Image.new("RGB", (W, H), "pink")
imd = ImageDraw.Draw(img)
fnt = ImageFont.truetype(font='font.ttf', size=32)

text = 'very very long'

imd.line(((W/2, 0), (W/2, H)), fill="black", width=1)
imd.line(((0, H/2), (W, H/2)), fill="black", width=1)
imd.text ((W/2, H/2), text, fill="black", anchor='ms', font=fnt, align='center')

img.format = "PNG"
img.show()
→ Ссылка