Пример #1
0

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())