54 lines
1.3 KiB
Python
Executable file
54 lines
1.3 KiB
Python
Executable file
#!/usr/bin/fontforge
|
|
|
|
import fontforge
|
|
import optparse
|
|
import json
|
|
import os
|
|
import sys
|
|
|
|
CONFIG_FILE = os.path.splitext(__file__)[0] + '.json'
|
|
DATA = json.load(open(CONFIG_FILE))
|
|
|
|
def main():
|
|
parser = optparse.OptionParser()
|
|
parser.add_option("-o", dest="output",
|
|
help="set the output file",
|
|
metavar="output")
|
|
parser.add_option("-n", dest="name",
|
|
help="set the font name",
|
|
metavar="name")
|
|
|
|
(options, args) = parser.parse_args()
|
|
|
|
output = options.output
|
|
name = options.name
|
|
|
|
if output is None:
|
|
output = 'sfizz-misc-icons.ttf'
|
|
if name is None:
|
|
name = 'Sfizz Misc Icons'
|
|
|
|
###
|
|
sys.stderr.write('* Font name: %s\n' % (name))
|
|
sys.stderr.write('* Output to: %s\n' % (output))
|
|
|
|
###
|
|
font = fontforge.font()
|
|
font.familyname = name
|
|
font.fullname = name
|
|
font.descent = 0
|
|
|
|
for (unicode, asset_name) in DATA['glyph_map'].items():
|
|
unicode = int(unicode, 16)
|
|
asset_path = 'icons/%s.svg' % (asset_name)
|
|
|
|
glyph = font.createChar(unicode)
|
|
glyph.importOutlines(asset_path)
|
|
glyph.width = 800
|
|
glyph.vwidth = 800
|
|
|
|
#font.save('sfizz-misc-icons.sfd')
|
|
font.generate(output)
|
|
|
|
if __name__ == '__main__':
|
|
main()
|