From 594856565aa0a0e4d5ff799bb4446ead5e858ecb Mon Sep 17 00:00:00 2001 From: bsongis Date: Sun, 14 Dec 2014 15:14:45 +0100 Subject: [PATCH] New script for generating a bitmap from any font, any size (with anti aliasing) --- radio/util/font2png.py | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 radio/util/font2png.py diff --git a/radio/util/font2png.py b/radio/util/font2png.py new file mode 100755 index 000000000..589f291ac --- /dev/null +++ b/radio/util/font2png.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import sys +from PyQt4 import Qt, QtGui +from wx import Width + +chars = u""" !"#$%&'()*+, ./0123456789:;<=>?°ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} """ + +font = sys.argv[1] +size = int(sys.argv[2]) +filename = sys.argv[3] + +app = QtGui.QApplication(sys.argv) +font = QtGui.QFont(font) +font.setBold(True) +font.setPointSize(size) +metrics = QtGui.QFontMetrics(font) + +width = 0 +for c in chars: + rect = metrics.boundingRect(c) + if rect.width() > width: + width = rect.width() + +image = QtGui.QImage(width*len(chars), size+4, QtGui.QImage.Format_RGB32) +image.fill(0xffffff) +painter = QtGui.QPainter() +painter.begin(image) +painter.setFont(font) +for i, c in enumerate(chars): + rect = metrics.boundingRect(c) + if i == 0: + rect.setWidth(4) + painter.drawText(width*i-rect.left(), size+1, c) + for j in range(rect.width(), width): + painter.drawLine(width*i+j, 0, width*i+j, width) +painter.end() +image.save(filename)