Визуализация таблицы шрифтов Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы рассмотрим пример взаимосвязи таблиц шрифтов с использованием библиотеки Matplotlib для Python.

Советы по работе с ВМ

После запуска виртуальной машины кликните в левом верхнем углу, чтобы переключиться на вкладку Ноутбук и приступить к практике в Jupyter Notebook.

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Загрузка шрифта

Во - первых, нам нужно загрузить файл шрифта. В этом примере мы будем использовать файл шрифта DejaVuSans.ttf.

import os
import matplotlib
from matplotlib.ft2font import FT2Font

font = FT2Font(os.path.join(matplotlib.get_data_path(), 'fonts/ttf/DejaVuSans.ttf'))

Установка карты символов

Далее мы устанавливаем карту символов в стандартную карту символов Unicode.

font.set_charmap(0)

Получение кодов символов и глифов

Мы получим коды символов и соответствующие глифы в шрифте и сохраним их в двух словарях coded и glyphd.

codes = font.get_charmap().items()

coded = {}
glyphd = {}
for ccode, glyphind in codes:
    name = font.get_glyph_name(glyphind)
    coded[name] = ccode
    glyphd[name] = glyphind

Загрузка глифа

Теперь мы загрузим глиф, букву 'A', из шрифта и выведем его ограничивающий прямоугольник с использованием атрибута glyph.bbox.

code = coded['A']
glyph = font.load_char(code)
print(glyph.bbox)

Получение значений кернинга

Мы можем получить значения кернинга между двумя глифами, используя метод font.get_kerning(). В этом примере мы получим значение кернинга между глифами для 'A' и 'V' и между глифами для 'A' и 'T'.

## kerning values for 'AV'
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))

## kerning value for 'AT'
print('AT', font.get_kerning(glyphd['A'], glyphd['T'], KERNING_UNSCALED))

Резюме

В этом практическом занятии мы узнали, как загружать файл шрифта, настраивать карту символов, получать коды символов и глифы, загружать глиф и получать значения кернинга между глифами. Эти полезные навыки пригодятся любому, кто хочет работать с шрифтами и текстом в своих проектах на Python.