Matplotlib 글꼴 테이블 시각화

Beginner

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

소개

이 랩에서는 Python 의 Matplotlib 라이브러리를 사용하여 글꼴 테이블이 서로 어떻게 관련되는지 보여주는 예제를 안내합니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 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'))

문자 맵 설정

다음으로, 문자 맵을 표준 유니코드 문자 맵으로 설정합니다.

font.set_charmap(0)

문자 코드 및 글리프 가져오기

글꼴에서 문자 코드와 해당 글리프를 가져와 codedglyphd 두 개의 딕셔너리에 저장합니다.

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 속성을 사용하여 경계 상자 (bounding box) 를 출력합니다.

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

커닝 값 가져오기

font.get_kerning() 메서드를 사용하여 두 글리프 사이의 커닝 값 (kerning values) 을 가져올 수 있습니다. 이 예제에서는 '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))

요약

이 랩에서는 글꼴 파일을 로드하고, 문자 맵 (character map) 을 설정하고, 문자 코드와 글리프를 가져오고, 글리프를 로드하고, 글리프 간의 커닝 값 (kerning values) 을 얻는 방법을 배웠습니다. 이는 Python 프로젝트에서 글꼴 및 텍스트 작업을 원하는 모든 사람에게 유용한 기술입니다.