-
フォントファイル ( *.fnt ) のフォーマットリファレンスです。
Version 1.0.0.0
- 最初のフォーマット
[Chg] | オフセットがマイナスになることがあるので FNT_GLYPH_NFO 構造体のメンバの型を変更。 UInt8 から Int16 or UInt16 に変更したことで大きいフォントも扱えるようにした。 |
[Imp] | 縁取りの対応。 |
[Chg] | 効果や縁のサイズを取得できるようにするため、ヘッダを修正。 また、不要になったパラメータを削除。 |
ファイルヘッダ |
情報ヘッダ |
グリフアロケーション |
グリフイメージ |
ファイルヘッダ
-
ファイルヘッダはフォントファイルを識別するためのものです。
- FNT_FILE_HEADER
ファイルヘッダ ( FNT_FILE_HEADER 構造体 ) |
名前 | 型 | 説明 | 値 |
---|---|---|---|
magic | UInt32 | マジック値 | 0x4652504D |
version | UInt32 | バージョン | 0x01020000 |
情報ヘッダ
-
情報ヘッダはフォントファイル全般の情報を記述します。
- FNT_INFO_HEADER
- FNT_EFFECTS 列挙
情報ヘッダ ( FNT_INFO_HEADER 構造体 ) |
名前 | 型 | 説明 |
---|---|---|
gryphBuffSize | UInt32 | グリフバッファのサイズ ( バイト単位 ) グリフのイメージを取得するのに必要なバッファのサイズになります。 |
firstCharCode | wchar_t | 最初のキャラクターコード ( ワイド文字 ) |
lastCharCode | wchar_t | 最後のキャラクターコード ( ワイド文字 ) |
effects | UInt32 | 効果 FNT_EFFECTS 列挙定数の組み合わせになります。 |
height | UInt32 | サイズ |
weight | UInt32 | 太さ |
borderSize | UInt32 | 縁のサイズ FNT_BORDERING が設定されていない場合は常に 0 になります。 |
名前 | 説明 | 値 |
---|---|---|
FNT_ITALIC | 斜体 | 0x00000001 |
FNT_BORDERING | 縁取り | 0x00000002 |
グリフアロケーション
-
グリフアロケーションは FNT_INFO_HEADER::lastCharCode - FNT_INFO_HEADER::firstCharCode + 1 の値の数だけ存在します。
- FNT_GRYPH_ALLOC
- グリフを表すパラメータの図解
グリフアロケーション ( FNT_GRYPH_ALLOC 構造体 ) |
・ |
・ |
・ |
名前 | 型 | 説明 |
---|---|---|
imagePos | UInt32 | イメージを開始するファイルの先頭からのオフセット ( バイト単位 ) |
cellWidth | UInt16 | セルの幅 |
cellHeight | UInt16 | セルの高さ |
x | Int16 | セルの左上からのX方向のオフセット |
y | Int16 | セルの左上からのY方向のオフセット |
width | UInt16 | 幅 |
height | UInt16 | 高さ |
┌─────────┐┬ │ ││ │③┌───┐┬ ││ │ │ ││ ││ │ │ あ ││ ⑤ ││ │ │ ││ ││② │ └───┘┴ ││ │ ├───┤ ││ │ ④ ││ └─────────┘┴ ├─────────┤ ①① cellWidth
② cellHeight
③ x, y
④ width
⑤ height
グリフイメージ
-
全てのグリフイメージになります。
イメージの1ピクセルは 2Byte で表現されます。
上位 1Byte が色合い 0(黒)~255(白) で、下位 1Byte が不透明度 0~255 になります。