|
テーマ:PDAの選び方(421)
カテゴリ:PDA
【その2】でフォント実装へのレスを付けるにはスペース不足になるため、新たにエントリーをば。
JaPonのフォントを変更するには色々方法があるんですが、あっしの場合はT-Pilotさんトコで以前リリースされたJaPon-FontKitをベースにしました。 ※現在はとある理由で希望者のみにしか公開してないようですが…。 それによるとフォントリソースに関しては広く知られているpilrc.exeを使ってるようなので、rcpファイルさえうまく設定すれば概念的にはJaPon-FontKitを使わなくてもコンパイルできそうですな。( ̄ー ̄)b FontKitが公開されてから判ったことなんですが。(笑) てことで、あっしが作ったツールは一体ナニをしているかというと… 1.BDFファイル、及びTrueTypeフォントをテキスト形式のMAP情報に変換 2.変換したMAP情報をJaPon-FontKitの文字の大きさに合わせる 3.JaPon-FontKit内のpfnフォルダに2.で変換したMAP情報を更新 と、これだけです(笑) 後はFontKitの機能を使ってprcファイルを生成するだけですね。 3.に関してはFontKitを一通り見れば構造がわかるハズなので割愛します。 で、問題は1.と2.をどう実現するかってトコなんですが、BDFフォーマットがさっぱり解らなかったあっしが参考にしたのが以下のサイトです。 BDFについて 非常にわかりやすく解説してあります。これだけで1.のインポート側ロジックが完成しました。 注意点としてはBDFファイルの中に文字コードの情報があるので、それを最終的にShift-JISコードに変換しないといけないことです。 文字コードの変換は以下のサイトが参考になるかと。 漢字コードに関する資料 掲載されている情報は少ないですが、BDFの大半はEUCもしくはJISコードで定義されてるものが多いので個人レベルであれば充分かと。 2.に関しては配布されたFontKit内の縦横サイズ情報を1文字ずつ構造体に読み込んで、インポートしたMAP情報に反映させています。 あっしの場合は以下のような構造体を定義して、FontKit内のpfnコード0x40~0xFEのみインポートしたフォントを適用、それ以外はFontKit内のデータをそのまま使っています。(各文字コードによって微妙に幅が違う場合があるため)
Pascal表記ですが、基本的にはC++でもVBでも同じです TCharMap.MapChar はStringListクラスなので、中身は以下のように入ります。
あとはpfnデータに反映させれば完成ですな。( ̄ー ̄)b お気に入りの記事を「いいね!」で応援しよう
[PDA] カテゴリの最新記事
|
|