sfizz-ui/scripts/misc-icons/generate_icons_font.py

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()