投稿日
2013/7/29 月曜日
ちょっとフォント名(フォントファミリ名)からフォントのファイル名を検索したかったので、その一覧を作成するスクリプトを書いた。
ただ、諸般の事情で無駄になってしまった。
そのままお蔵入りさせるのも勿体無いので公開。
動作確認した環境は、Mac OS X 10.8.4、OS標準のPython 2.7。
pip install freetype-py 等でfreetype-pyをインストールする必要がある。
あと、 brew install freetype 等でfreetypeのバイナリをインストールする必要があるかも。
./list_font_name.py "フォントファイルもしくはフォントを設置したディレクトリのパス"
-rオプションで再帰的にディレクトリをたどる。(つまりデフォルトでは指定したディレクトリ直下のファイルのみ調べる。)
出力は、”フォントファイル名, フォントファミリ名”のリストとなる。
フォントファイルじゃないものがあったり、freetypeが認識に失敗したらフォントファミリ名として”不明”と表示される。
あと、サッと適当に書いたソースなので注意。
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' パラメータで渡されたディレクトリの中にあるフォントファイルのフォント名(フォントファミリ名)を一覧表示する。 要 freetype-py ''' import os.path import sys import freetype from optparse import OptionParser def main(dir_path, do_recursive): if do_recursive: for root, dirs, files in os.walk(dir_path): for fname in files: path = os.path.join(root, fname) print_font_name(path) else: for fname in os.listdir(dir_path): path = os.path.join(dir_path, fname) print_font_name(path) def print_font_name(font_path): if not os.path.isfile(font_path): return try: face = freetype.Face(font_path) print "%s, %s" % (os.path.basename(font_path), face.family_name) except (freetype.ft_errors.FT_Exception): print "%s, %s" % (os.path.basename(font_path), "不明") if __name__ == "__main__": parser = OptionParser() parser.add_option("-r", "--recursive", action = "store_true", dest = "recursive", default = False, help = "ディレクトリを再帰的に処理する。") (options, args) = parser.parse_args() if len(args) < 1: print "エラー: 処理するフォントファイルまたはディレクトリを指定してください。" sys.exit(1) path = os.path.abspath(args[0]) if not os.path.exists(path): print "エラー: フォントファイルまたはディレクトリが存在しません。" sys.exit(1) if os.path.isdir(path): main(path, options.recursive) elif os.path.isfile(path): print_font_name(path) else: print "エラー: ファイルまたはディレクトリを指定してください。" sys.exit(1)
最近のコメント
名前
しゅごい
Jane Doe
FYI Avoid Annoying Unexpe…
Jane Doe
ご存じとは思いますが、whileには、”~の間”と…
peta_okechan
針金みたいなパーツを引っ張ると外れます。 他の方の…
虎徹ファン交換
虎徹の標準ファンを外す際に、どのようにして外されま…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…
花粉症対策2019 – 日曜研究室
[…] 花粉症対策についてはこれまで次の記事を書いてきました。https://…