首页 > 解决方案 > Tkinter - 如何将文本更改为图像?

问题描述

让我们把它作为一个示例程序:

from tkinter import *
import random
win = Tk()
win.geometry('200x200')

alphabets = ["A", "B", "C"]
rand_alpha = random.choice(alphabets)

lbl = Label(win, font = 'Ariel 30',text = rand_alpha)
lbl.pack()

win.mainloop()

在上面的这个程序中,我想将“rand_alpha”的文本更改为图像文件,以便我可以使用 PIL 对其进行修改。python可以吗!?

标签: pythonimagetkintertextpython-imaging-library

解决方案


您可以使用ImageDraw创建所需的图像:

from tkinter import *
import random
from PIL import Image, ImageTk, ImageDraw, ImageFont

win = Tk()
win.geometry('200x200')

alphabets = ["A", "B", "C"]
rand_alpha = random.choice(alphabets)

image = Image.new('RGB', (200, 200), (255, 255, 255))  # adjust the size to what you want
draw = ImageDraw.Draw(image)
font = ImageFont.truetype('arial.ttf', size=128) # adjust the font and size to what you want
w, h = draw.textsize(rand_alpha, font=font)
draw.text(((200-w)//2, (200-h)//2), font=font, text=rand_alpha, fill='black')
tkimage = ImageTk.PhotoImage(image)

lbl = Label(win, image=tkimage)
lbl.pack()

win.mainloop()

使用方法请参考ImageDraw文档。


推荐阅读