char = 'я' font_folder = 'data/fonts/google-fonts-cyrillic' fonts = [] font_list = { font_name: [font_ver for font_ver in os.listdir(f'{font_folder}/{font_name}')] for font_name in os.listdir(font_folder) } for font_name, font_versions in font_list.items(): font_ver = font_versions[0] font = TTFont(f'{font_folder}/{font_name}/{font_ver}') font.name = font_name fonts.append(font) def get_points(font): glyph_set = font.getGlyphSet() glyph = glyph_set[font.getBestCmap()[ord(char)]] pen = ApplePen(glyph_set) glyph.draw(pen) points = np.array(pen.points, dtype=np.float64) x = points[:, 0] y = points[:, 1] bbox = (x.min(), y.min(), x.max(), y.max())