「OpenTypeフォント」の版間の差分
提供: 個人的記録
(→name テーブル) |
|||
| 178行目: | 178行目: | ||
=== name テーブル === | === name テーブル === | ||
| + | フォントファミリ名や著作権表示が記録されているテーブル。<br> | ||
| + | うちの用途ではフォントファミリが取得できれば十分だったのでnameテーブルのみ調査した。 | ||
= 使用ツール = | = 使用ツール = | ||
2021年10月31日 (日) 07:38時点における版
TrueTypeFontについて調査。
TTFの仕様
TTFファイルのヘッダ構造
| オフセット | 型 | 説明 |
|---|---|---|
| 0 | 4バイト | TTFヘッダのバージョン、TrueTypeフォント(ttfファイル)なら 0x00010000 が、PostScriptフォント(otfファイル)なら 0x4F54544F ('OTTO') が格納されている |
| 4 | 2バイト整数 | 格納されているテーブルの数 |
| 6 | 2バイト整数 | search Range 「(Maximum power of 2 <= numTables) x 16.」と説明にあるがよくわからない |
| 8 | 2バイト整数 | entrySelector 「Log2(maximum power of 2 <= numTables).」と説明にあるがよくわからない |
| 10 | 2バイト整数 | rangeShift「NumTables x 16-searchRange」と説明にあるがよくわからない |
上記ヘッダの後に、ヘッダに記載のテーブル数だけ以下の構造が続く
| オフセット | 型 | 説明 |
|---|---|---|
| 0 | 4バイト文字列 | テーブル識別子。4バイトのASCII文字列。テーブルに記述されている内容の種別が記録されている。 |
| 4 | 4バイト符号なし整数 | チェックサム |
| 8 | 4バイト符号なし整数 | ファイル先頭からデータ部分までのオフセット。 |
| 12 | 4バイト符号なし整数 | データ部分の長さ。 |
テーブル識別子
オフセットテーブルに指定されているテーブル識別子でデータ部分に何が含まれているかを判断できる。
テーブル識別子の一覧の以下のようになっている。
| 識別子 | 説明 |
|---|---|
| 以下の識別子は必須 | |
| cmap | 文字コードからグリフIDへの変換 |
| head | 基本的な情報 |
| hhea | 水平レイアウトの情報 |
| hmtx | 水平グリフの送り幅などの情報 |
| maxp | 色々な最大値の定義 |
| name | フォント名など |
| OS/2 | OS/2 と Windows の情報 |
| post | PostScript 情報 |
| TrueType アウトラインの場合のみ | |
| cvt | グリフの制御データ (option) |
| fpgm | Font program (option) |
| glyf | グリフデータ |
| loca | 各グリフのオフセット位置 |
| prep | CVT Program (option) |
| gasp | Grid-fitting/Scan-conversion (option) |
| CFF アウトラインの場合のみ | |
| CFF | Compact Font Format 1.0 |
| CFF2 | Compact Font Format 2.0 |
| VORG | 縦書き時の各グリフごとのY原点 (option) |
| SVG アウトライン | |
| SVG | SVG |
| ビットマップグリフ | |
| EBDT | 埋め込みビットマップ データ |
| EBLC | 埋め込みビットマップ location data |
| EBSC | 埋め込みビットマップ scaling data |
| CBDT | カラービットマップ データ |
| CBLC | カラービットマップ location data |
| sbix | PNG/JPEG/TIFF などの形式のビットマップデータ |
| OpenType 拡張 | |
| BASE | 各言語ごとのベースライン情報 |
| GDEF | 個々のグリフに関する情報。 |
| タイプ、合字キャレットなど。 | |
| GPOS | グリフ配置。濁点の配置や文字間隔の調整など。 |
| GSUB | グリフ置換。縦書き変換や合字など。 |
| JSTF | 行揃え |
| MATH | 数式レイアウト情報 |
| OpenType バリエーション | |
| avar | Axis variations |
| cvar | CVT variations (TrueType アウトラインのみ) |
| fvar | Font variations |
| gvar | Glyph variations (TrueType アウトラインのみ) |
| HVAR | 水平レイアウト |
| MVAR | Metrics variations |
| STAT | スタイル属性。 |
| 非バリエーションフォントでもオプションとして使われる。 | |
| VVAR | 垂直レイアウト |
| カラーフォント | |
| COLR | カラーテーブル |
| CPAL | カラーパレットテーブル |
| CBDT | カラービットマップ データ |
| CBLC | カラービットマップ location data |
| ほか | |
| DSIG | デジタル署名 |
| hdmx | 特定のピクセルサイズ時の各グリフの水平レイアウト幅 |
| kern | カーニング |
| LTSH | Linear threshold data |
| MERG | アンチエイリアス処理時、各グリフを個別に実行するか、特定のグリフペアを一緒に処理するかの指定 |
| meta | メタデータ |
| PCLT | PCL 5 データ |
| VDMX | Vertical device metrics |
| vhea | 垂直レイアウトの情報 |
| vmtx | 垂直グリフの情報 |
name テーブル
フォントファミリ名や著作権表示が記録されているテーブル。
うちの用途ではフォントファミリが取得できれば十分だったのでnameテーブルのみ調査した。
使用ツール
- Microsoft Typography
- TTFを解体するのに使用
TTFDump.exe
TTFのヘッダを参照するのに使用。
- 使い方
ttfdump.exe <TTFフォント>
参考サイト
- https://aznote.jakou.com/prog/opentype/02_struct.html
- http://vanillasky-room.cocolog-nifty.com/blog/2008/02/opentype3name-a.html