当前位置: 首页 > 知识库问答 >
问题:

操作错误:无法打开资源

贲永思
2023-03-14
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\uuuuuu init\uuuuuuuuuu.py”,第1702行,在调用返回self中。func(*args)
文件“test.py”,第9行,在func\u image
font\u type\u 1=ImageFont中。truetype(str(combo.get()),18)
文件“C:\Users\Mevada\AppData\Local\Programs\Python\Python37\lib\site packages\PIL\ImageFont.py”,第280行,在truetype中返回FreeTypeFont(字体、大小、索引、编码、布局引擎)
文件“C:\Users\Mevada\AppData\Local\Programs\Python\Python37\lib\site packages\PIL\ImageFont.py”,第145行,在_init__layout_engine=layout_engine)
操作错误:无法打开资源

谢谢...

共有3个答案

养俊驰
2023-03-14

似乎PIL找不到font

在您的计算机中找到您的字体文件。在windows中,它总是在C:\WINDOWS\Fonts目录中。选择一个并修改你的第9行,就像它一样:

font_type_1 = ImageFont.truetype("bahnschrift.ttf",18)

bahnchrift。ttf只是我电脑上的一个样本,我不确定你电脑上是否有。

卫高谊
2023-03-14

ImageFont.truetype需要给它一个文件名。你不是给它一个文件名,而是给它一个字体家族的名字。tkinter的font.families()不返回文件名。

吕志诚
2023-03-14
import tkinter as tk  
from tkinter import ttk
from PIL import Image,ImageDraw,ImageFont
import matplotlib.font_manager as fm

root = tk.Tk()

def func_image():  
    image = Image.open(r'E:\side_300.png')  
    font_type_1 = ImageFont.truetype(fm.findfont(fm.FontProperties(family=combo.get())),18)
    draw = ImageDraw.Draw(image)  
    draw.text((50,50),text='Hello',fill='red',font=font_type_1)  
    image.show()  

fonts = list(set([f.name for f in fm.fontManager.ttflist]))
fonts.sort()

combo = ttk.Combobox(root,value=fonts)    
combo.pack()  

btn = ttk.Button(root,text='Click Me',command=func_image)  
btn.pack()

root.mainloop()
 类似资料:
  • 当我跑步时 我得到这个错误 get _ new _ connection conn = database . connect(* * conn _ params)Django . db . utils . operational错误:无法打开数据库文件 my settings.py:

  • 问题内容: 好吧,这是我在下面进行的操作,以获取错误,但不知道为什么数据库连接失败。 创建一个新的ASP.NET网站 将新的* .mdf数据库添加到App_Data 使用Visual Studio中的服务器资源管理器向其中添加一些表 右键单击“数据库”,然后单击“复制连接”字符串。如下所示将其插入WebConfig文件 问题答案: 我有一个偷偷摸摸的怀疑,它与权限有关。完全控制您的“授权用户”。

  • 问题内容: 这与一个年龄较大的人非常相似,但是解决方案对我不起作用。 我有一个WAR包。 在 在 但是得到这个: org.springframework.beans.factory.BeanInitializationException:无法加载属性。嵌套的异常是java.io.FileNotFoundException:无法打开ServletContext资源[/social.propertie

  • 问题内容: 我收到这个奇怪的错误 我如何从中恢复?有任何想法吗 ? 谢谢 问题答案: 您丢失了与表1684和数据库17369相关的文件。在目录base / 17369中检查名称为1684的状态文件。 您可以确定它是哪个表: 1)获取数据库名称: 2)获取表名(连接到受影响的数据库): 可能没有更多可以做的事情了。仅从备份还原。

  • 我想在数据目录中为应用程序创建一个数据库。我试着使用 但我总是遇到以下异常:无法打开数据库文件 Logcat得出以下结果: 04-10 19:55:09.387: E/SqliteDatabase aseCpp(554):sqlite3_open_v2("/data/data/at.einkaufsliste/database/Einkaufsliste.sqlite", 我设置了权限外部存储和组

  • 当我运行模拟器时,以下错误显示为警报: 操作无法完成。(LaunchServicesError错误0。) 我试过很多关于堆栈溢出的答案,但它们对我都不起作用。 Feb 18 14:48:12 com.apple.dt.xcode[32825]:错误域=LaunchServicesError Code=0“(null)”userInfo={Error=MissingBundleExecutable,