создание заполненного прямоугольника / формы вокруг текста с помощью PIL - PullRequest
0 голосов
/ 14 июля 2020

У меня есть уже существующее изображение, к которому я добавил границу и текст. Я хотел бы поместить прямоугольник вокруг текстовой области, чтобы сделать его похожим на вставленную золотом пластину на картинке или картине. Я использую draw.text для написания и размещения текста, но не могу понять, как сделать границу формы и заполнить параметры текста.

import os
from PIL import Image, ImageOps, ImageDraw, ImageFont
import glob


## SINGLE IMAGE

img = Image.open('Art/AB-2020 (2).jpg')
add_grey_border = ImageOps.expand(img,border=50,fill='grey')
add_black_border = ImageOps.expand(add_grey_border,border=300,fill='black')
add_black_border.save('Art/imaged-with-border.png')

## Function to add Title to image

def add_title(img_src, title):

    img = Image.open(img_src, 'r')
    draw = ImageDraw.Draw(img)
    w, h = img.size
    
    font = ImageFont.truetype("arial.ttf", 100)
    text_w, text_h = draw.textsize(title, font)

    draw.text(((w - text_w) / 2, (h-100) - text_h), title, (255,255,255), 
    font=font, stroke_width=2, stroke_fill='#eeda19')
    img.save(img_src)
    return img_src

add_title('Art/imaged-with-border.png', 'test')

то, что у меня есть: рисование с текстом

Если я получу правильную табличку, я удалю штрих_fill.

Я хочу, чтобы он выглядел так: Чего я пытаюсь достичь

...