ImageFont.truetype时,报错:OSError: cannot open resource

运行下面代码时

ImageFont.truetype("simsun.ttc", 20, encoding='utf-8')

报错信息如下

OSError: cannot open resource

解决办法

1.下载simsun.tcc。

2.将simsun.tcc复制到 "/usr/share/fonts/truetype/simsun/"文件夹下面(ubuntu)。

### 解决 Python 中 `OSError: cannot open resource` 错误 #### 字体路径配置不当引发的错误 当使用像 Matplotlib 或 Pillow 这样的图形库,如果指定的字体文件不存在于预期位置,则会抛出 `OSError: cannot open resource` 的异常。这通常是因为代码中指定了一个系统上并不存在的字体文件名或是相对路径设置有误[^1]。 #### 安装缺失的字体文件 一种解决方案是确保所需的字体已正确安装在操作系统内,并且可以从应用程序访问这些字体。对于 Linux 用户来说,可能需要通过包管理器来获取特定字体;而对于 Windows 和 macOS 用户而言,可以通过系统的字体管理工具来进行操作。 #### 修改代码中的字体引用 另一个常见的原因是代码里使用的字体名称与实际存在的不符。检查函数参数中关于字体的部分,确认所提供的 `.ttf` 文件确实存在于项目目录下或者是绝对路径指向的位置。例如,在定义验证码生成函数应验证所给定的 `font_file='Monaco.ttf'` 是否准确无误以及该文件是否可被读取[^2]。 ```python from PIL import Image, ImageDraw, ImageFont def check_code(width=120, height=30, char_length=5, font_file='./fonts/Monaco.ttf', font_size=28): try: # 尝试加载字体 font = ImageFont.truetype(font_file, font_size) code = [] img = Image.new(mode='RGB', size=(width, height), color=(255, 255, 255)) draw = ImageDraw.Draw(img, mode='RGB') # 继续处理... except IOError as e: print(f"Error loading font file {font_file}: ", str(e)) ``` 此段代码增加了对字体加载失败情况下的异常捕获机制,以便更好地调试问题所在[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值