BDF (การแจกแจงบิตแมป Glyph; Wikipedia; Spec) รูปแบบ Format Font Font Parser Library ใน Python มีคลาส Font , Glyph และ Bitmap ที่ให้วิธี API แบบโซ่มากกว่า 30 วิธีในการแยกวิเคราะห์แบบอักษร BDF, รับข้อมูลเมตา, การแสดงข้อความในทิศทางการเขียนใด ๆ เพิ่มเอฟเฟกต์พิเศษและจัดการภาพบิตแมป มันทำงานได้อย่างราบรื่นกับ Pil / Pillow และ Numpy และมีการอ้างอิงเอกสาร / บทช่วยสอน / API โดยละเอียด
BDF Parser TypeScript (JavaScript) Library (เอกสารประกอบ; หน้า gitHub; หน้า npm; npm i bdfparser ) เป็นพอร์ตของ BDF Parser Python Library (เอกสารประกอบ; หน้า gitHub; pypi page; pip install bdfparser ) ทั้งสองเขียนโดย Tom Chen และภายใต้ใบอนุญาต MIT
ห้องสมุด BDF Parser TypeScript (JavaScript) มี การสาธิตสดและบรรณาธิการ ที่คุณสามารถลองได้
ด้านล่างนี้ฉันจะแสดงตัวอย่างที่รวดเร็ว แต่ก็ยังขอแนะนำอย่างยิ่งให้คุณไปที่ เว็บไซต์อย่างเป็นทางการของห้องสมุด Python Python ของ BDF เพื่ออ่านเอกสารรายละเอียด / บทช่วยสอน / 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