字体索引
一个小示例,它展示了对字体表的各种索引是如何相互关联的。主要是为MPL开发商.。
输出:
(6, 0, 519, 576)36 57 65 86AV 0AV 0AV 0AV 0
import matplotlibfrom matplotlib.ft2font import FT2Font, KERNING_DEFAULT, KERNING_UNFITTED, KERNING_UNSCALEDfname = matplotlib.get_data_path() + '/fonts/ttf/DejaVuSans.ttf'font = FT2Font(fname)font.set_charmap(0)codes = font.get_charmap().items()#dsu = [(ccode, glyphind) for ccode, glyphind in codes]#dsu.sort()#for ccode, glyphind in dsu:# try: name = font.get_glyph_name(glyphind)# except RuntimeError: pass# else: print('% 4d % 4d %s %s' % (glyphind, ccode, hex(int(ccode)), name))# make a charname to charcode and glyphind dictionarycoded = {}glyphd = {}for ccode, glyphind in codes:name = font.get_glyph_name(glyphind)coded[name] = ccodeglyphd[name] = glyphindcode = coded['A']glyph = font.load_char(code)print(glyph.bbox)print(glyphd['A'], glyphd['V'], coded['A'], coded['V'])print('AV', font.get_kerning(glyphd['A'], glyphd['V'], KERNING_DEFAULT))print('AV', font.get_kerning(glyphd['A'], glyphd['V'], KERNING_UNFITTED))print('AV', font.get_kerning(glyphd['A'], glyphd['V'], KERNING_UNSCALED))print('AV', font.get_kerning(glyphd['A'], glyphd['T'], KERNING_UNSCALED))
