Visualização da Tabela de Fontes Matplotlib

Beginner

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

Introdução

Este laboratório irá guiá-lo através de um exemplo de como as tabelas de fontes se relacionam entre si, utilizando a biblioteca Matplotlib do Python.

Dicas da VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Carregar a Fonte

Primeiramente, precisamos carregar um arquivo de fonte. Neste exemplo, usaremos o arquivo de fonte DejaVuSans.ttf.

import os
import matplotlib
from matplotlib.ft2font import FT2Font

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

Definir o Mapa de Caracteres

Em seguida, definimos o mapa de caracteres para o mapa de caracteres Unicode padrão.

font.set_charmap(0)

Obter Códigos de Caracteres e Glifos

Obteremos os códigos de caracteres e os glifos correspondentes na fonte e os armazenaremos em dois dicionários, coded e 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

Carregar um Glifo

Agora, carregaremos um glifo, a letra 'A', da fonte e imprimiremos sua caixa delimitadora (bounding box) usando o atributo glyph.bbox.

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

Obter Valores de Kerning

Podemos obter os valores de kerning entre dois glifos usando o método font.get_kerning(). Neste exemplo, obteremos o valor de kerning entre os glifos para 'A' e 'V' e os glifos para 'A' e '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))

Resumo

Neste laboratório, aprendemos como carregar um arquivo de fonte, definir o mapa de caracteres, obter códigos de caracteres e glifos, carregar um glifo e obter valores de kerning entre glifos. Estas são técnicas úteis para qualquer pessoa que queira trabalhar com fontes e texto em seus projetos Python.