BDF (Glyph Bitmap Distribution; Wikipedia; SPEC) Format Bibliothèque d'analyse de fichier Bitmap Font en Python. Il dispose de classes Font , Glyph et Bitmap offrant plus de 30 méthodes API chaînables pour analyser les polices BDF, obtenir leurs méta-informations, rendre le texte dans n'importe quelle direction d'écriture, ajoutant des effets spéciaux et manipulant les images bitmap. Il fonctionne parfaitement avec PIL / Pillow et Numpy, et a une documentation / tutoriels détaillé / référence API.
BDF Parser TypeScript (JavaScript) Library (Documentation; GitHub Page; NPM Page; npm i bdfparser ) est un port de BDF Parser Python Library (documentation; page GitHub; page PYPI; pip install bdfparser ). Les deux sont écrits par Tom Chen et sous la licence du MIT.
La bibliothèque BDF Parser TypeScript (JavaScript) a une démo en direct et un éditeur que vous pouvez essayer.
Ci-dessous, je vais vous montrer quelques exemples rapides, mais il est toujours fortement recommandé de vous rendre sur le site officiel de la bibliothèque de Python BDF PATHON pour lire la documentation détaillée / référence de tutoriels / API .
Installez la bibliothèque BDFParser Python avec PIP:
pip install bdfparserAlors:
from bdfparser import Font
font = Font ( 'tests/fonts/unifont-13.0.04.bdf' )
print ( f"This font's global size is "
f" { font . headers [ 'fbbx' ] } x { font . headers [ 'fbby' ] } (pixel), "
f"it contains { len ( font ) } glyphs." )
# =================================
ac = font . glyph ( "a" ). draw (). crop ( 6 , 8 , 1 , 2 ). concat (
font . glyph ( "c" ). draw (). crop ( 6 , 8 , 1 , 2 )
). shadow ()
ac_8x8 = ac * 8
from PIL import Image
im_ac = Image . frombytes ( 'RGBA' ,
( ac_8x8 . width (), ac_8x8 . height ()),
ac_8x8 . tobytes ( 'RGBA' ))
im_ac . save ( "ac.png" , "PNG" )
# =================================
hello = font . draw ( 'Hello!' , direction = 'rl' ). glow ()
print ( hello )
import numpy
import matplotlib . pyplot as plt
nparr = numpy . array ( hello . todata ( 2 ))
plt . imshow ( nparr , 'Blues' )
plt . show ()
# =================================
font_preview = font . drawall ()
im_ac = Image . frombytes ( '1' ,
( font_preview . width (), font_preview . height ()),
font_preview . tobytes ( '1' ))
im_ac . save ( "font_preview.png" , "PNG" )Vous comprenez probablement ce que j'ai fait dans ces exemples. Que vous le fassiez ou non, allez sur le site de documentation de BDFParser .