※このプログラムはPILを事前にインストールしておく必要が有ります。
#! /usr/bin/env python # coding: utf-8 # coding=utf-8 # -*- coding: utf-8 -*- # vim: fileencoding=utf-8 import sys from PIL import ImageFont from PIL import Image from PIL import ImageDraw fontSize = 25 outW = 256 outH = 256 if (len(sys.argv) == 1): print 'Usage: python %s fontfile' % sys.argv[0] quit() fontFile = sys.argv[1] font = ImageFont.truetype(fontFile, fontSize, encoding='utf-8') asciiList = range(0x20, 0x7e) maxW = -1 maxH = -1 transFlag = 0 for ascii in asciiList: w, h = font.getsize(chr(ascii)) if (maxW < w): maxW = w if (maxH < h): maxH = h print 'out:%dx%d maxW:%d maxH:%d' % (outW, outH, maxW, maxH) if (transFlag): im = Image.new('RGBA', (outW, outH), (255,255,255,0)) else: im = Image.new('RGB', (outW, outH), (255,255,255)) draw = ImageDraw.Draw(im) x = 0 y = 0 for ascii in asciiList: draw.text((x+(maxW-w)/2, y), chr(ascii), fill=(0,0,0), font=font) x = x + maxW if (x + maxW > outW): x = 0 y = y + maxH if (y + maxH > outH): break #im.show() # 即、プレビューする時はここのコメントアウトを外す im.save('ascii.png')