bdffont
1.0.0
BDFFONT es una biblioteca para manipular las fuentes del formato de distribución de mapa de bits del glifo (BDF).
pip install bdffont import shutil
from bdffont import BdfFont
from examples import assets_dir , build_dir
def main ():
outputs_dir = build_dir . joinpath ( 'load' )
if outputs_dir . exists ():
shutil . rmtree ( outputs_dir )
outputs_dir . mkdir ( parents = True )
font = BdfFont . load ( assets_dir . joinpath ( 'unifont' , 'unifont-16.0.02.bdf' ))
print ( f'name: { font . name } ' )
print ( f'size: { font . point_size } ' )
print ( f'ascent: { font . properties . font_ascent } ' )
print ( f'descent: { font . properties . font_descent } ' )
print ()
for glyph in font . glyphs :
print ( f'char: { chr ( glyph . encoding ) } ( { glyph . encoding :04X } )' )
print ( f'glyph_name: { glyph . name } ' )
print ( f'advance_width: { glyph . device_width_x } ' )
print ( f'dimensions: { glyph . dimensions } ' )
print ( f'origin: { glyph . origin } ' )
for bitmap_row in glyph . bitmap :
text = '' . join ( ' ' if alpha == 0 else '██' for alpha in bitmap_row )
print ( f' { text } *' )
print ()
font . save ( outputs_dir . joinpath ( 'unifont-16.0.02.bdf' ))
if __name__ == '__main__' :
main () import shutil
from bdffont import BdfFont , BdfGlyph
from examples import build_dir
def main ():
outputs_dir = build_dir . joinpath ( 'create' )
if outputs_dir . exists ():
shutil . rmtree ( outputs_dir )
outputs_dir . mkdir ( parents = True )
font = BdfFont (
point_size = 16 ,
resolution = ( 75 , 75 ),
bounding_box = ( 16 , 16 , 0 , - 2 ),
)
font . glyphs . append ( BdfGlyph (
name = 'A' ,
encoding = ord ( 'A' ),
scalable_width = ( 500 , 0 ),
device_width = ( 8 , 0 ),
bounding_box = ( 8 , 16 , 0 , - 2 ),
bitmap = [
[ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ],
[ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ],
[ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ],
[ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ],
[ 0 , 0 , 0 , 1 , 1 , 0 , 0 , 0 ],
[ 0 , 0 , 1 , 0 , 0 , 1 , 0 , 0 ],
[ 0 , 0 , 1 , 0 , 0 , 1 , 0 , 0 ],
[ 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 ],
[ 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 ],
[ 0 , 1 , 1 , 1 , 1 , 1 , 1 , 0 ],
[ 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 ],
[ 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 ],
[ 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 ],
[ 0 , 1 , 0 , 0 , 0 , 0 , 1 , 0 ],
[ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ],
[ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ],
],
))
font . properties . foundry = 'Pixel Font Studio'
font . properties . family_name = 'Demo Pixel'
font . properties . weight_name = 'Medium'
font . properties . slant = 'R'
font . properties . setwidth_name = 'Normal'
font . properties . add_style_name = 'Sans Serif'
font . properties . pixel_size = font . point_size
font . properties . point_size = font . point_size * 10
font . properties . resolution_x = font . resolution_x
font . properties . resolution_y = font . resolution_y
font . properties . spacing = 'P'
font . properties . average_width = round ( sum ([ glyph . device_width_x * 10 for glyph in font . glyphs ]) / len ( font . glyphs ))
font . properties . charset_registry = 'ISO10646'
font . properties . charset_encoding = '1'
font . generate_name_as_xlfd ()
font . properties . default_char = - 1
font . properties . font_ascent = 14
font . properties . font_descent = 2
font . properties . x_height = 5
font . properties . cap_height = 7
font . properties . font_version = '1.0.0'
font . properties . copyright = 'Copyright (c) TakWolf'
font . save ( outputs_dir . joinpath ( 'my-font.bdf' ))
if __name__ == '__main__' :
main ()Bajo la licencia del MIT.