6
|
1 #!/usr/bin/python
|
|
2 # -*- coding: iso-8859-1 -*-
|
|
3 # ttf2jpg.py converts font files to jpg images
|
|
4 # download fonts from http://www.dafont.com
|
|
5
|
|
6 ##################
|
|
7 # import libraries
|
|
8 ##################
|
|
9
|
|
10 import sys, os, fnmatch
|
|
11 import Image
|
|
12 import ImageFont, ImageDraw
|
|
13
|
|
14 ###########
|
|
15 # variables
|
|
16 ###########
|
|
17 # don't forget the "/" at the end of directories
|
|
18
|
|
19 font_dir = "/usr/share/fonts/truetype/ttf-liberation/"
|
|
20 image_dir = "./images/"
|
|
21 pattern = "*.ttf"
|
|
22
|
|
23 ###########
|
|
24 # functions
|
|
25 ###########
|
|
26
|
|
27 # save a picture of "text" with font "font_file"
|
|
28 def write_image(text, font_file):
|
|
29 # print "Writing \"" + text + "\" with " + font_file + "..."
|
|
30 sys.stdout.write(".")
|
|
31 sys.stdout.flush()
|
|
32
|
|
33 # create a 32x32 white picture, and a drawing space
|
|
34 image = Image.new("L", (32, 32), "White")
|
|
35 draw = ImageDraw.Draw(image)
|
|
36
|
|
37 # load the font with the right size
|
|
38 font = ImageFont.truetype(font_dir + font_file, 28)
|
|
39 w,h = draw.textsize(text, font=font)
|
|
40
|
|
41 # write text and aligns it
|
|
42 draw.text(((32 - w) / 2, ((32 - h) / 2)), text, font=font)
|
|
43
|
|
44 # show image, xv must be installed
|
|
45 #image.show()
|
|
46
|
|
47 # save the picture
|
|
48 image.save(image_dir + text + "-" + font_file + ".jpg")
|
|
49
|
|
50 # write all the letters and numbers into pictures
|
|
51 def process_font(font_file):
|
|
52 for i in range(0, 26):
|
|
53 write_image(chr(ord('a') + i), font_file)
|
|
54 for i in range(0, 26):
|
|
55 write_image(chr(ord('A') + i), font_file)
|
|
56 for i in range(0, 10):
|
|
57 write_image(chr(ord('0') + i), font_file)
|
|
58
|
|
59 ######
|
|
60 # main
|
|
61 ######
|
|
62
|
|
63 # look for ttf files
|
|
64 files = os.listdir(font_dir)
|
|
65 font_files = fnmatch.filter(files, pattern)
|
|
66
|
|
67 # create "image_dir" if it doesn't exist
|
|
68 if not os.path.isdir(image_dir):
|
|
69 os.mkdir(image_dir)
|
|
70
|
|
71 sys.stdout.write( str(len(font_files)) + " fonts found, generating jpg images in folder " + image_dir )
|
|
72 sys.stdout.flush()
|
|
73
|
|
74 # main loop
|
|
75 for font_file in font_files:
|
|
76 process_font(font_file)
|
|
77
|
|
78 sys.stdout.write("\nall done!\n") |