我刚刚在覆盆子pi上安装了python枕头5。它安装得很好,工作正常。
我遇到的问题是找到一个pilfont.py文件。
我有几个我需要转换的bdf字体,并一直在网上搜索如何执行此操作。 我发现的所有信息都指向了pilfont实用程序,但我无法在pi上找到它。
任何人都可以指出我的方向是正确的,我知道如何使用它来转换字体,只是无法激活它。
欢呼声
答案 0 :(得分:1)
似乎你通过pip3安装了枕头5。我自己也这样做了,它没有包括pilfont实用程序。甚至没有在枕头git中找到文件。没有找到弃用的信息。因此,我建议使用此解决方法:
创建一个空目录并更改为它。 现在:
apt-get download python3-pil
下载包括pilfont枕头4在内的raspbian包裹。这不会安装包。
接下来提取下载的deb软件包。文件名可能有所不同:
ar -x python3-pil_4.0.0-4.deb
之后你有一些文件,你需要提取的是data.tar.xz:
tar -xvf data.tar.xz
这会给你./usr/bin/pilfont
现在您可以将其复制到/ usr / bin /
sudo cp ./usr/bin/pilfont /usr/bin/pilfont
之后,您可以删除下载的存档及其提取的内容。
答案 1 :(得分:1)
至少从2018年10月起,由于软件包不包含pilfont实用程序,因此先前的答案不再有效。但是事实证明,您不需要花费时间寻找外部实用程序,因为pilfont只是您在短短几分钟内即可重新创建的非常简单的脚本。
这是我自己的“ pilfont实用程序”,它将当前目录中的所有.bdf和.pcf字体转换为.pil和.pbm:
#!/usr/bin/env python
# Author: Peter Samuel Anttila
# License: The Unlicense <http://unlicense.org, October 16 2018>
from PIL import BdfFontFile
from PIL import PcfFontFile
import os
import glob
font_file_paths = []
current_dir_path = os.path.dirname(os.path.abspath(__file__))
font_file_paths.extend(glob.glob(current_dir_path+"/*.bdf"))
font_file_paths.extend(glob.glob(current_dir_path+"/*.pcf"))
for font_file_path in font_file_paths:
try:
with open(font_file_path,'rb') as fp:
# despite what the syntax suggests, .save(font_file_path) won't
# overwrite your .bdf files, it just creates new .pil and .pdm
# files in the same folder
if font_file_path.lower().endswith('.bdf'):
p = BdfFontFile.BdfFontFile(fp)
p.save(font_file_path)
elif font_file_path.lower().endswith('.pcf'):
p = PcfFontFile.PcfFontFile(fp)
p.save(font_file_path)
else:
# sanity catch-all
print("Unrecognized extension.")
except (SyntaxError,IOError) as err:
print("File at '"+str(font_file_path)+"' could not be processed.")
print("Error: " +str(err))
对于期限紧迫的人: 您不需要该实用程序。只需使用以下代码即可自行转换:
with open(font_file_path,'rb') as fp:
p = BdfFontFile.BdfFontFile(fp) #PcfFontFile if you're reading PCF files
# won't overwrite, creates new .pil and .pdm files in same dir
p.save(font_file_path)
如果文件不能作为BDF或PCF文件读取,则会抛出SyntaxError和/或IOError。