phobious
@phobious
Не отрицаю свою глупость, и нет, мне не стыдно

Центрирование текста в python?

Есть библиотека Pillow , с помощью нее на картинку можно нанести текст

так вот, можно ли как-то подогнать это текст не по координатам, а ровно по центру картинки?

в документации нашел это :

from PIL import Image, ImageDraw

with Image.open("hopper.jpg") as im:

    draw = ImageDraw.Draw(im)
    draw.line((0, 0) + im.size, fill=128)
    draw.line((0, im.size[1], im.size[0], 0), fill=128)

    # write to stdout
    im.save(sys.stdout, "PNG")


просто две линии, на пересечении коих находится центр, но это не совсем то что мне нужно
  • Вопрос задан
  • 601 просмотр
Решения вопроса 2
HemulGM
@HemulGM Куратор тега Python
Delphi Developer, сис. админ
Достаточно подумать головой, чтобы понять, что по центру легко поставить:
X = (Pic.Width / 2) - (Text.Width / 2)
Y = (Pic.Height / 2) - (Text.Height / 2)
Ответ написан
Комментировать
WolfInChains
@WolfInChains
Например от ширины картинки отнять длинну текста и разделить это на 2

img = Image.open("background.jpg")
W, H = (1400, 2000)
draw = ImageDraw.Draw(img)
msg = "12345"
w, h = draw.textsize(msg)
font_pt_1 = ImageFont.truetype("bahnschrift.ttf", 72)
draw.text(((W - w)/2, 150), msg, (255, 255, 255), font=font_pt_1)
img.save('sample-out.jpg')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы