2010年 10月 14日

BDF フォントを canvas にレンダリングする

ブラウザでアンチエイリアスのきいてない bitmap フォントを使おうと思い webfont でいけるかなと思いきや、手元の環境だとどのブラウザでも bitmap フォントを使用できなかった、ということがありました。(Firefox はオプションを入れればできるみたいなのを最近見たんですが試さず)

で、それなら自力でレンダリングしたらいいんじゃないかなと思いつつ、面倒でやってなかったのですが、bdf のフォーマットがただのテキストファイルということを知って多少やる気が沸いたのでやってみました。

依存しているブラウザの機能は

  • canvas
  • 2d Context
  • fillRect

だけなので canvas が実装されていれば大抵のブラウザで動きます。

日本語も対応 bdf さえあれば描けるのですが、JS の charCodeAt でとれる数値と、bdf のコードポイントが一致していないといけないので、普通は変換が必要です。mplus の bdf 用の変換器 (というか jis から ucs) は書いたのを一緒のレポジトリにいれてあります

どや