BDF (Distribución de mapa de bits de glifo; wikipedia; especificación) Formato de la biblioteca de lámpara de archivo de fuentes de mapa de bits en Python. Tiene clases Font , Glyph y Bitmap que proporcionan más de 30 métodos API encadenables para analizar las fuentes BDF, obtener su meta información, hacer que el texto en cualquier dirección de escritura, agregando efectos especiales y manipulación de imágenes de mapa de bits. Funciona sin problemas con pil / almohada y numpy, y tiene documentación detallada / tutorial / referencia de API.
BDF Parser TypeScript (JavaScript) Biblioteca (documentación; página de GitHub; página NPM; npm i bdfparser ) es un puerto de la biblioteca de Python Python (documentación; Página de GitHub; PYPI; pip install bdfparser ). Ambos están escritos por Tom Chen y bajo la licencia MIT.
La biblioteca BDF Parser TypeScript (JavaScript) tiene una demostración y editor en vivo que puede probar.
A continuación, le mostraré algunos ejemplos rápidos, pero todavía se recomienda encarecidamente que vaya al sitio web oficial de la Biblioteca Python Python de BDF para leer la referencia detallada de documentación / tutoriales / API .
Instale la biblioteca BDFParser Python con PIP:
pip install bdfparserEntonces:
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" )Probablemente entiendas lo que hice en estos ejemplos. Ya sea que lo haga o no, vaya al sitio web de documentación de BDFParser .