-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathbdf2h.py
executable file
·63 lines (53 loc) · 1.89 KB
/
bdf2h.py
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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
#+ Copyright (c) 2012 Rikard Lindstrom <ornotermes@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import sys
import argparse
print("// bdf2h - Extract data from font to header format")
print("// Command: %s" % " ".join(sys.argv))
def argParser():
p = argparse.ArgumentParser()
p.add_argument( "-f", "--file", dest="file", default="-", metavar="/file.png", help="")
p.add_argument( "-n", "--name", dest="name", default="", metavar="file", help="Name of the output structure.")
p.add_argument( "-l", "--last", dest="last", default="255", metavar="n", help="Last charecter to convert.")
return vars(p.parse_args())
arg = argParser()
font = open(arg["file"])
inChar = False
tempLine = ""
charNum = 0
def nextLine():
return font.nextline()
for line in font:
lineSplit = line.split(" ")
if lineSplit[0] == "STARTCHAR":
tempLine = "//" + lineSplit[1].rstrip("\n")
if lineSplit[0] == "ENCODING":
charNum = int(lineSplit[1].rstrip("\n"))
if charNum <= int(arg["last"]):
print tempLine + ": " + str(charNum)
if line == "ENDCHAR\n":
inChar = False
if charNum <= int(arg["last"]):
print tempLine
if inChar:
tempLine += "0x" + line[0] + line[1] + ", "
if line == "BITMAP\n":
if charNum <= int(arg["last"]):
inChar = True
tempLine = ""