[pukiwiki]
//*[[Python でplanet(自動巡回):http://plaza.rakuten.co.jp/kugutsushi/diary/200805010000/]]
[[漢字が使える日本語フォント 無料ダウンロード 46種類:http://blog.4galaxy.net/56.html]]
という記事が[[はてブ:http://b.hatena.ne.jp/entry/http://blog.4galaxy.net/56.html]]でホットエントリ入りしていました。
で、いちいちインストールするのも厭だったので、フォントファイルのサンプル画像を作成するスクリプトをPythonおよび[[PIL:http://www.pythonware.com/products/pil/]]モジュールで書いてみました。
”インスコしてないフォントでもok”
ついでに、一覧用のhtmlファイルも作成。 (テンプレートエンジンとか使ってないのでアレですが)
※どんなhtmlファイルが作成されるかといいますとー、 上記のリンク先を無地にしたような感じと思っていただければ。
*ちょっと困ったこと
-zipファイル内のフォントも表示するように。。。しようと思ったけど、時間切れ。 誰か作ってー
-msgothicなどのフォント名が変。どうすればいいのかしらん?
以下コード
[/pukiwiki]
# -*- coding: utf-8 -*-
import Image,ImageDraw,ImageFont
from glob import glob
import os
im=Image.new("L",(640,120))
draw=ImageDraw.ImageDraw(im)
draw.rectangle((0,0,639,120),fill=(255))
#フォントファイルの場所。サンプルではシステムのフォントフォルダですが
#インストールしてないファイルでも大丈夫です。
fontpath=r"c:¥Windows¥Fonts"
fontpath+=r"¥%s"
fontlist=glob(fontpath % "*.tt*")
fonty=32
sample=[ u"ABCDEFGHIJKLMNOPQRSTUVWXYZ",
u"あいうえお @ハローワールド♪",
u"亜唖娃阿哀愛挨姶逢葵茜"
]
savename="./img/%s.png"
oxy=(ox,oy)=(8,8)
if not os.path.exists(r"./img") :
os.mkdir(r"./img")
html=["<html><head><title>Font Sample</title></head><body>"]
tmpl="""<div><a href="file://%(f)s">
%(fbody)s<br/>
%(fname)s</a><br/>
%(fstyle)s<br/>
<a href="file://%(f)s">
<img src="%(imname)s" border=0 /></a><br/>
'</div>"""
def test(f) :
font = ImageFont.truetype(f,fonty)
nm=font.getname()
fbody=os.path.split(f)[-1]
fname=nm[0]
imname=savename%fbody
fstyle=nm[1]
for i,s in enumerate(sample) :
draw.text((ox,oy+i*fonty),s,fill=0,font=font)
im.save(imname)
html.append(tmpl %locals())
for f in fontlist:
print ".",
draw.rectangle((0,0,639,190),fill=(255))
try :
test(f)
except Exception, e:
print
print "<<<error >>> %s %s"% (f,str(e))
html.append(r"</body></html>")
fp=open("font.html","wb")
fp.write( "¥n".join(html))
fp.close()