Skip to content

Commit da4fa0b

Browse files
authored
Merge pull request #32 from jepler/pcf
Implement PCF font loading
2 parents 51e9a1f + 6e57a8b commit da4fa0b

File tree

9 files changed

+30758
-117
lines changed

9 files changed

+30758
-117
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,4 @@ bundles
99
.eggs
1010
dist
1111
**/*.egg-info
12-
*.pcf
1312
*.ttf

adafruit_bitmap_font/bdf.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,41 @@ def __init__(self, f, bitmap_class):
6363
self.point_size = None
6464
self.x_resolution = None
6565
self.y_resolution = None
66+
self._ascent = None
67+
self._descent = None
68+
69+
@property
70+
def descent(self):
71+
"""The number of pixels below the baseline of a typical descender"""
72+
if self._descent is None:
73+
self.file.seek(0)
74+
while True:
75+
line = self.file.readline()
76+
if not line:
77+
break
78+
79+
if line.startswith(b"FONT_DESCENT "):
80+
self._descent = int(line.split()[1])
81+
break
82+
83+
return self._descent
84+
85+
@property
86+
def ascent(self):
87+
"""The number of pixels above the baseline of a typical ascender"""
88+
if self._ascent is None:
89+
self.file.seek(0)
90+
while True:
91+
line = self.file.readline()
92+
line = str(line, "utf-8")
93+
if not line:
94+
break
95+
96+
if line.startswith("FONT_ASCENT "):
97+
self._ascent = int(line.split()[1])
98+
break
99+
100+
return self._ascent
66101

67102
def get_bounding_box(self):
68103
"""Return the maximum glyph size as a 4-tuple of: width, height, x_offset, y_offset"""

adafruit_bitmap_font/bitmap_font.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,12 @@ def load_font(filename, bitmap=None):
5757

5858
return bdf.BDF(font_file, bitmap)
5959
if filename.endswith("pcf") and first_four == b"\x01fcp":
60-
import pcf
60+
from . import pcf
6161

62-
return pcf.PCF(font_file)
62+
return pcf.PCF(font_file, bitmap)
6363
if filename.endswith("ttf") and first_four == b"\x00\x01\x00\x00":
64-
import ttf
64+
from . import ttf
6565

66-
return ttf.TTF(font_file)
67-
return None
66+
return ttf.TTF(font_file, bitmap)
67+
68+
raise ValueError("Unknown magic number %r" % first_four)

0 commit comments

Comments
 (0)