import tkinter as tk
from tkinter import ttk,font
from PIL import Image,ImageDraw,ImageFont
root = tk.Tk()
def func_image():
image = Image.open(r'E:\side_300.png')
font_type_1 = ImageFont.truetype(str(combo.get()),18)
draw = ImageDraw.Draw(image)
draw.text((50,50),text='Hello',fill='red',font=font_type_1)
image.show()
fonts=list(font.families())
fonts.sort()
combo = ttk.Combobox(root,value=fonts)
combo.pack()
btn = ttk.Button(root,text='Click Me',command=func_image)
btn.pack()
root.mainloop()
输出
Tkinter 回调异常
追溯(最近一次通话):
文件“C:\Users\Mevada\AppData\Local\Programs\Python\Python37\lib\tkinter__init__.py”,第 1702 行,在 __call__return self.func(*args)
文件“test.py”,第 9 行,在 func_image 中
font_type_1 = ImageFont.truetype(str(combo.get()),18)
文件“C:\Users\Mevada\AppData\Local\Programs\Python\Python37\lib\site-packages\PIL\ImageFont.py”,第 280 行,在 truetype 中返回 FreeTypeFont(字体、大小、索引、编码、layout_engine)
文件“C:\Users\Mevada\AppData\Local\Programs\Python\Python37\lib\site-packages\PIL\ImageFont.py”,第 145 行,在 __init__layout_engine=layout_engine 中)
OSError: 无法打开资源
谢谢…
原文由 Bhavesh Mevada 发布,翻译遵循 CC BY-SA 4.0 许可协议