请考虑以下示例。它使用/Library/Frameworks/Python.framework/Versions/3.7/bin/python3
(通过python wrapper)加载字体,然后计算freetype
。
glyphs
如您所见,通过计数获得的数字与直接询问时库报告的数字不匹配。
为什么?
注意:不需要了解python包装器即可解决此问题。此处使用的python函数是C-API函数的薄包装。相关位是
import freetype as FT
f = FT.Face('/usr/share/fonts/truetype/Hack-Regular.ttf')
f.num_glyphs
# 1573
len([*f.get_chars()])
# 1549
使用get_chars
和FT_Get_First_Char
遍历提供的所有(?)字符
FT_Get_Next_Char
charcode, agindex = self.get_first_char()
yield charcode, agindex
while agindex != 0:
charcode, agindex = self.get_next_char(charcode, 0)
yield charcode, agindex
只是拉起了自己的名字
num_glyphs