[英]Python PIL issue | OSError: cannot open resource
我正在运行一个 python 脚本来生成证书。 但是我收到这个错误:
Initializing Script!
Traceback (most recent call last):
File "Generate_certificates.py", line 31, in <module>
main()
File "Generate_certificates.py", line 12, in main
font = ImageFont.truetype(r".\Dancing_Script\DancingScript-VariableFont_wght.ttf", 150)
File "/home/rohit07/.local/lib/python3.8/site-packages/PIL/ImageFont.py", line 855, in truetype
return freetype(font)
File "/home/rohit07/.local/lib/python3.8/site-packages/PIL/ImageFont.py", line 852, in freetype
return FreeTypeFont(font, size, index, encoding, layout_engine)
File "/home/rohit07/.local/lib/python3.8/site-packages/PIL/ImageFont.py", line 211, in __init__
self.font = core.getfont(
OSError: cannot open resource
文件夹内的文件结构为:
剧本:
from PIL import Image, ImageFont, ImageDraw
import pandas as pd
def main():
print("Initializing Script!")
names = pd.read_csv('dummy_names.csv')
for i,row in names.iterrows():
name = str(row['FName']) + ' ' + str(row['LName'])
name = name.title()
empty_img = Image.open("empty-cert.png")
font_size = 150
font = ImageFont.truetype(r".\Dancing_Script\DancingScript-VariableFont_wght.ttf", 150)
W,H = empty_img.size
w, h = font.getsize(name)
width = ((W-w)/2)
height = ((H-h)/2)-50
if W%w >= 2:
font_size = 130
width = ((W-w)/2) +75
height = ((H-h)/2)-10
font = ImageFont.truetype(r".\Dancing_Script\DancingScript-VariableFont_wght.ttf", font_size)
image_editable = ImageDraw.Draw(empty_img)
image_editable.multiline_text((width,height), name, (35, 57, 75), font=font)
empty_img.save("{}.jpg".format(name.replace(" ", "_")))
if i % 50 == 0:
print('Processed {} Rows'.format(i))
print("Process Complete!")
if __name__ == "__main__":
main()
我想使用自定义字体作为名称,所以我使用的是Dancing Script字体。 我检查了某处是否有任何拼写错误,但仍然无法排除故障。
在@alex 评论的帮助下
我变了:
font = ImageFont.truetype(r".\Dancing_Script\DancingScript-VariableFont_wght.ttf", 150)
font = ImageFont.truetype(r".\Dancing_Script\DancingScript-VariableFont_wght.ttf", font_size)
到:
font = ImageFont.truetype(r"./Dancing_Script/DancingScript-VariableFont_wght.ttf", 150)
font = ImageFont.truetype(r"./Dancing_Script/DancingScript-VariableFont_wght.ttf", font_size)
它奏效了!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.