-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfont7.py
More file actions
107 lines (93 loc) · 4.78 KB
/
font7.py
File metadata and controls
107 lines (93 loc) · 4.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# Code generated by font_to_py.py.
# Font: calc5x6.ttf
# Cmd: ./font_to_py.py calc5x6.ttf 6 font6.py
version = '0.42'
def height():
return 7
def baseline():
return 6
def max_width():
return 6
def hmap():
return True
def reverse():
return False
def monospaced():
return False
def min_ch():
return 32
def max_ch():
return 126
_font =\
b'\x06\x00\x70\x88\x10\x20\x00\x20\x06\x00\x00\x00\x00\x00\x00\x00'\
b'\x06\x00\x20\x20\x20\x20\x00\x20\x06\x00\x50\x50\x00\x00\x00\x00'\
b'\x06\x00\x00\x50\xf8\x50\xf8\x50\x06\x00\x20\x78\x80\x08\xf0\x20'\
b'\x06\x00\x00\xc8\xd0\x20\x58\x98\x06\x00\x70\x88\x70\xa0\x90\x78'\
b'\x06\x00\x20\x20\x00\x00\x00\x00\x06\x00\x10\x20\x20\x20\x20\x10'\
b'\x06\x00\x40\x20\x20\x20\x20\x40\x06\x00\x00\x20\xa8\x70\xa8\x20'\
b'\x06\x00\x00\x20\x20\xf8\x20\x20\x06\x00\x00\x00\x00\x60\x20\x40'\
b'\x06\x00\x00\x00\x00\x70\x00\x00\x06\x00\x00\x00\x00\x00\x60\x60'\
b'\x06\x00\x00\x08\x10\x20\x40\x80\x06\x00\x70\x88\x88\x88\x88\x70'\
b'\x06\x00\x20\x60\x20\x20\x20\x70\x06\x00\x70\x88\x10\x20\x40\xf8'\
b'\x06\x00\x70\x88\x30\x08\x88\x70\x06\x00\x10\x30\x50\x90\xf8\x10'\
b'\x06\x00\xf8\x80\xf0\x08\x88\x70\x06\x00\x30\x40\xf0\x88\x88\x70'\
b'\x06\x00\xf8\x08\x10\x10\x20\x20\x06\x00\x70\x88\x70\x88\x88\x70'\
b'\x06\x00\x70\x88\x88\x78\x10\x60\x06\x00\x00\x60\x60\x00\x60\x60'\
b'\x06\x00\x60\x60\x00\x60\x20\x40\x06\x00\x00\x18\x60\x80\x60\x18'\
b'\x06\x00\x00\x00\xf8\x00\xf8\x00\x06\x00\x00\xc0\x30\x08\x30\xc0'\
b'\x06\x00\x70\x88\x10\x20\x00\x20\x06\x00\x70\x88\xa8\xb0\x80\x78'\
b'\x06\x00\x20\x50\x88\xf8\x88\x88\x06\x00\xf0\x88\xf0\x88\x88\xf0'\
b'\x06\x00\x70\x88\x80\x80\x88\x70\x06\x00\xe0\x90\x88\x88\x90\xe0'\
b'\x06\x00\xf8\x80\xf0\x80\x80\xf8\x06\x00\xf8\x80\xf0\x80\x80\x80'\
b'\x06\x00\x70\x88\x80\xb8\x88\x78\x06\x00\x88\x88\xf8\x88\x88\x88'\
b'\x06\x00\x70\x20\x20\x20\x20\x70\x06\x00\x38\x08\x08\x08\x88\x70'\
b'\x06\x00\x88\x90\xa0\xe0\x90\x88\x06\x00\x80\x80\x80\x80\x80\xf8'\
b'\x06\x00\x88\xd8\xa8\xa8\x88\x88\x06\x00\x88\xc8\xa8\x98\x88\x88'\
b'\x06\x00\x70\x88\x88\x88\x88\x70\x06\x00\xf0\x88\x88\xf0\x80\x80'\
b'\x06\x00\x70\x88\x88\x90\x60\x18\x06\x00\xf0\x88\x88\xf0\x90\x88'\
b'\x06\x00\x70\x88\x60\x10\x88\x70\x06\x00\xf8\x20\x20\x20\x20\x20'\
b'\x06\x00\x88\x88\x88\x88\x88\x70\x06\x00\x88\x88\x88\x88\x50\x20'\
b'\x06\x00\x88\x88\xa8\xa8\xa8\x50\x06\x00\x88\x50\x20\x50\x88\x88'\
b'\x06\x00\x88\x88\x50\x20\x20\x20\x06\x00\xf8\x08\x70\x80\x80\xf8'\
b'\x06\x00\x30\x20\x20\x20\x20\x30\x06\x00\x00\x80\x40\x20\x10\x08'\
b'\x06\x00\x60\x20\x20\x20\x20\x60\x06\x00\x20\x50\x88\x00\x00\x00'\
b'\x06\x00\x00\x00\x00\x00\x00\xf8\x06\x00\x20\x10\x00\x00\x00\x00'\
b'\x06\x00\x00\x70\x08\x78\x88\x78\x06\x00\x80\xb0\xc8\x88\x88\xf0'\
b'\x06\x00\x00\x70\x80\x80\x88\x70\x06\x00\x08\x68\x98\x88\x88\x78'\
b'\x06\x00\x00\x70\x88\xf8\x80\x70\x06\x00\x30\x48\x40\xf0\x40\x40'\
b'\x06\x00\x00\x78\x88\x78\x08\x70\x06\x00\x80\x80\xb0\xc8\x88\x88'\
b'\x06\x00\x20\x00\x60\x20\x20\x70\x06\x00\x10\x00\x30\x10\x10\x60'\
b'\x06\x00\x80\x88\x90\xe0\x90\x88\x06\x00\x60\x20\x20\x20\x20\x70'\
b'\x06\x00\x00\xd0\xa8\xa8\xa8\xa8\x06\x00\x00\xb0\xc8\x88\x88\x88'\
b'\x06\x00\x00\x70\x88\x88\x88\x70\x06\x00\x00\xf0\x88\xc8\xb0\x80'\
b'\x06\x00\x00\x78\x88\x98\x68\x08\x06\x00\x00\xb0\xc8\x80\x80\x80'\
b'\x06\x00\x00\x78\x80\x70\x08\xf0\x06\x00\x40\xf0\x40\x40\x48\x30'\
b'\x06\x00\x00\x88\x88\x88\x98\x68\x06\x00\x00\x88\x88\x88\x50\x20'\
b'\x06\x00\x00\x88\x88\xa8\xa8\x50\x06\x00\x00\xc8\x30\x20\x60\x98'\
b'\x06\x00\x00\x88\x48\x30\x20\xc0\x06\x00\x00\xf8\x08\x70\x80\xf8'\
b'\x06\x00\x10\x20\x60\x20\x20\x10\x06\x00\x20\x20\x20\x20\x20\x20'\
b'\x06\x00\x40\x20\x30\x20\x20\x40\x06\x00\x00\x00\x40\xa8\x10\x00'\
_index =\
b'\x00\x00\x08\x00\x10\x00\x18\x00\x20\x00\x28\x00\x30\x00\x38\x00'\
b'\x40\x00\x48\x00\x50\x00\x58\x00\x60\x00\x68\x00\x70\x00\x78\x00'\
b'\x80\x00\x88\x00\x90\x00\x98\x00\xa0\x00\xa8\x00\xb0\x00\xb8\x00'\
b'\xc0\x00\xc8\x00\xd0\x00\xd8\x00\xe0\x00\xe8\x00\xf0\x00\xf8\x00'\
b'\x00\x01\x08\x01\x10\x01\x18\x01\x20\x01\x28\x01\x30\x01\x38\x01'\
b'\x40\x01\x48\x01\x50\x01\x58\x01\x60\x01\x68\x01\x70\x01\x78\x01'\
b'\x80\x01\x88\x01\x90\x01\x98\x01\xa0\x01\xa8\x01\xb0\x01\xb8\x01'\
b'\xc0\x01\xc8\x01\xd0\x01\xd8\x01\xe0\x01\xe8\x01\xf0\x01\xf8\x01'\
b'\x00\x02\x08\x02\x10\x02\x18\x02\x20\x02\x28\x02\x30\x02\x38\x02'\
b'\x40\x02\x48\x02\x50\x02\x58\x02\x60\x02\x68\x02\x70\x02\x78\x02'\
b'\x80\x02\x88\x02\x90\x02\x98\x02\xa0\x02\xa8\x02\xb0\x02\xb8\x02'\
b'\xc0\x02\xc8\x02\xd0\x02\xd8\x02\xe0\x02\xe8\x02\xf0\x02\xf8\x02'\
b'\x00\x03'
_mvfont = memoryview(_font)
_mvi = memoryview(_index)
ifb = lambda l : l[0] | (l[1] << 8)
def get_ch(ch):
oc = ord(ch)
ioff = 2 * (oc - 32 + 1) if oc >= 32 and oc <= 126 else 0
doff = ifb(_mvi[ioff : ])
width = ifb(_mvfont[doff : ])
next_offs = doff + 2 + ((width - 1)//8 + 1) * 6
return _mvfont[doff + 2:next_offs], 6, width