BDF (распределение растрового растроения Glyph; Wikipedia; Spec) Формат библиотека анализатора шрифта Font Font в Python. В нем есть классы Font , Glyph и Bitmap предоставляющие более 30 цепных методов API для анализа шрифтов BDF, получения их мета -информации, приводя текст в любом направлении записи, добавляя спецэффекты и манипулируя изображениями растрового изображения. Он работает без проблем с PIL / Pillow и Numpy, и имеет подробную документацию / учебные пособия / ссылка API.
Библиотека BDF Parser TypeScript (JavaScript) (документация; страница Github; страница NPM; npm i bdfparser ) - это порт библиотеки Python BDF PARSER (документация; PIPI Page; PYPI; pip install bdfparser ). Оба написаны Томом Ченом и по лицензии MIT.
Библиотека TypeScript (JavaScript) BDF имеет живую демонстрацию и редактор, которую вы можете попробовать.
Ниже я покажу вам несколько быстрых примеров, но все еще настоятельно рекомендуется перейти на официальный веб -сайт BDF Parser Python Library, чтобы прочитать подробную документацию / учебные пособия / ссылка API .
Установите библиотеку Bdfparser Python с PIP:
pip install bdfparserЗатем:
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" )Вы, вероятно, понимаете, что я сделал в этих примерах. Независимо от того, делаете ли вы или нет, перейдите на веб -сайт документации BDFPARSER .