2017年9月2日土曜日

数字フォントの画像化

システムにインストールされているフォントを使って数字を描画し、jupyter notebookで表示します。
次のコードをjupyter notebookに貼り付けて実行すると、 色々なフォントの画像が生成されます。

数字フォントを眺めたい場合にどうぞ。
(You can see images of numbers 0-9 for all fonts in your system by executing the code below in jupyter notebook)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
%matplotlib inline
import os
import re
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image, ImageDraw, ImageFont

fontdir = "C:/Windows/Fonts"
width = 28
height = 28
def make_image(font_name):
    font = ImageFont.truetype(fontdir+"/{}".format(font_name), 25)
    for i in range(10): # Draw 0-9 as image
        image = Image.new('RGB', (width, height), (0, 0, 0))
        draw = ImageDraw.Draw(image) 
        font_width, font_height = font.getsize(str(i))
        draw.text(((width-font_width)/2, (height-font_height)/2),
                  str(i), font=font, fill=(255, 255, 255))
        ax = plt.subplot(1, 10, i+1) # Horizontally align images
        ax.tick_params(labelleft='off', labelbottom='off',
                       left='off', bottom='off') # Remove ticks
        plt.imshow(np.asarray(image))
    plt.show() # Finish drawing an image and output it

# Collect only true type fonts including numbers
rp = re.compile(".*ttf")
font_list = [f for f in os.listdir(fontdir) if rp.match(f)
             and (f!="webdings.ttf" and f!="wingding.ttf")]
for font_name in font_list:
    print(font_name)
    make_image(font_name)
http://fushime2.hatenablog.com/entry/2017/01/13/193844
を参考に作成しました。

0 件のコメント :