#:g1: ttf-ascii

Posted 2012-12-05 15:01:00 GMT

この投稿はCommon Lisp Libraries Advent Calendar 2012の6日目の記事です。
約5年前にttf-asciiを試してみた簡単な紹介記事を書いたのですが、5年経過した今、再度検証しつつアップデートしてみました。

ttf-asciiとは

zpb-ttfを利用してTrueTypeフォントの情報を読み取りアスキーで描画するというものです。
この5年間で変更もなく、Quicklispにも登録されてはいない様子。

パッケージ名ttf-ascii
本拠地サイトhttp://www.yagc.ndo.co.uk/code/ttf-ascii/
ドキュメント×
Clikihttp://www.cliki.net/ttf-ascii
Quicklisp×

インストール

残念ながらQuicklisp一発ではインストールできないので、手元にソースを持ってきてQuicklispのlocal-projectsディレクトリ等に展開する必要があります。展開した後にQuicklispの登録ライブラリを初期化して読み込みます。
Unix系OSの場合
シェル側:

$ cd quicklisp/local-projects 
$ mkdir ttf-ascii
$ cd ttf-ascii
$ tar xvf ttf-ascii.tar.bz2 
Common Lisp側:
(asdf:initialize-source-registry)
(ql:quickload :ttf-ascii)

使ってみる

;; Ubuntu 12.4 x86_64
(let ((font-loader
       (zpb-ttf:open-font-loader "/usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf")))
  (ttf-ascii::print-message (ttf-ascii::make-message font-loader "辰" 64 64))
  (zpb-ttf:close-font-loader font-loader))
################################################################
################################################################
################################################################
################################################################
################################################################
################################################################
################################################################
################################################################
################################################################
##########################+++++++++++++++++++++++++++++++++#####
##########################+++++++++++++++++++++++++++++++++#####
##########################+++++++++++++++++++++++++++++++++#####
##########################+++++++++++++++++++++++++++++++++#####
##########################++++##################################
##########################++++##################################
##########################++++##################################
##########################++++##################################
##########################++++##################################
##########################++++#+++++++++++++++++++++++++########
##########################++++#+++++++++++++++++++++++++########
##########################++++#+++++++++++++++++++++++++########
##########################++++#+++++++++++++++++++++++++########
##########################++++##################################
##########################++++##################################
##########################++++##################################
#########################+++++##################################
#########################+++++##################################
#########################++++++++++++++++++++++++++++++++++++###
#########################++++++++++++++++++++++++++++++++++++###
#########################++++++++++++++++++++++++++++++++++++###
#########################++++++++++++++++++++++++++++++++++++###
#########################+++++++++++++######+++++++++++++++++###
#########################+++++####++++#++++#+++++++++++#########
#########################+++++####++++#++++#+++++++++++++#######
#########################+++++####++++#++++#++++++++++++++######
#########################++++#####++++#+++++#+++++++++++++######
#########################++++#####++++#+++++#++#+++++++++#######
#########################++++#####++++#+++++#++#++++++++########
#########################++++#####++++#+++++#++#++++++++########
########################+++++#####++++#++++++#+++++++++#########
########################+++++#####++++#++++++#++++++++##########
########################+++++#####++++#++++++##++++++###########
########################+++++#####++++#+++++++#+++++############
########################+++++#####++++#++++++++++++++###########
########################+++++#####++++#++++++++++++++++#########
########################+++++#####++++#++++++++#++++++++########
#######################+++++######++++#++++++++##+++++++++######
#######################+++++######+++++++++++++####+++++++++####
######################++++++######+++++++++++++###++++++++++++##
######################++++++#++++++++++++++++#######+++++++++###
######################+++++##+++++++++++++++#########+++++++####
#######################++++###+++++++++++##############+++++####
#########################+###+++++++#####################++#####
#########################+######################################
################################################################
################################################################
################################################################
################################################################
################################################################
################################################################
################################################################
################################################################
################################################################
################################################################

まとめ

Quicklispに対応していない野良のソースでもasdがあれば、そんなに導入も難しくもないですね。
元のプロジェクトは、パブリックドメインなのでQuicklispに申請してみるというのも良いかもしれません。

comments powered by Disqus