-
フォントファイル ( *.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 になります。