我從 PIL API 中找到了這段代碼(這里是鏈接:
但是如果你增加字的大小,它看起來像這樣:

所以我只希望文本居中并縮小以適合影像
uj5u.com熱心網友回復:
沒有詳細說明要求,所以這里只針對固定大小(200, 200)的結果影像,所以字體大小會改變。
- 查找文本的大小
ImageDraw.textsize - 在與文本寬度相同的影像上繪制
ImageDraw.text - 將影像大小調整為 (200-2*border, 200-2*border)
Image.resize - 將調整后的影像粘貼到 200x200 影像
Image.paste
from PIL import Image, ImageDraw, ImageFont
def text_to_image(text, filename='text.png', border=20):
im = Image.new("RGB", (1, 1), "white")
font = ImageFont.truetype("calibri.ttf", 48)
draw = ImageDraw.Draw(im)
size = draw.textsize(text, font=font)
width = max(size)
im = Image.new("RGB", (width, width), "white")
draw = ImageDraw.Draw(im)
draw.text((width//2, width//2), text, anchor='mm', fill="black", font=font)
im = im.resize((200-2*border, 200-2*border), resample=Image.LANCZOS)
new_im = Image.new("RGB", (200, 200), "white")
new_im.paste(im, (border, border))
new_im.show()
# new_im.save(filename)
text_to_image("Hello World")

轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/387995.html
