フォント TrueType 構造解析 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(cvt)
(loca)
 
2,525行: 2,525行:
 
 
 
 
  
==== fpgm ====
+
==== fpgm ヒント系 ====
 
 Font '''p'''ro'''g'''ra'''m'''の略です。中身はヘッダ定義された位置から、その長さまでが1バイトで表されたフォントプログラム命令(TrueType命令とかOpenType命令、TrueType Instruction ... というワードで検索すると対象の文献にたどり着ける)。多くの異なるプログラムから参照されるプログラムになっています。この後に記述するprepやグリフの中に埋め込まれるモノも同じような仕組みを使います。fpgmは関数化されたプログラムを配置するのが主な用途です。最初に関数番号がプッシュされ、関数定義されるたびにスタックからポップされていきます。関数の中でスタックにプッシュした値はポップで使い切らないと関数番号がおかしなことになります。
 
 Font '''p'''ro'''g'''ra'''m'''の略です。中身はヘッダ定義された位置から、その長さまでが1バイトで表されたフォントプログラム命令(TrueType命令とかOpenType命令、TrueType Instruction ... というワードで検索すると対象の文献にたどり着ける)。多くの異なるプログラムから参照されるプログラムになっています。この後に記述するprepやグリフの中に埋め込まれるモノも同じような仕組みを使います。fpgmは関数化されたプログラムを配置するのが主な用途です。最初に関数番号がプッシュされ、関数定義されるたびにスタックからポップされていきます。関数の中でスタックにプッシュした値はポップで使い切らないと関数番号がおかしなことになります。
  
2,574行: 2,574行:
 
 
 
 
  
==== prep ====
+
==== prep ヒント系 ====
 
 '''preP'''rogramの略です。一度だけ実行されるプログラムです。fprgの命令の前に実行されるもののようです。
 
 '''preP'''rogramの略です。一度だけ実行されるプログラムです。fprgの命令の前に実行されるもののようです。
  
2,585行: 2,585行:
 
 
 
 
  
==== cvt  ====
+
==== cvt  ヒント系 ====
 
 Control Value Table は 制御値テーブルで prep や fpgm や グリフの中のFont Programで使われる制御値をまとめたテーブルです。このテーブルは Font Programで追加・削除・編集される可能性があるため、初期値のようなものです。
 
 Control Value Table は 制御値テーブルで prep や fpgm や グリフの中のFont Programで使われる制御値をまとめたテーブルです。このテーブルは Font Programで追加・削除・編集される可能性があるため、初期値のようなものです。
  
2,600行: 2,600行:
  
 
==== loca ====
 
==== loca ====
 glypテーブルのそれぞれのGlyph ID毎のglypテーブル開始位置からのOffset値を順に格納しています。次のOffset値との差分が、そのGlyph IDの長さになります。Glyph ID [0] ~ Glyph [最後のID番号-1]の数のOffsetがあります。Glyph [最後のID番号]には次のテーブルが始まるOffset番号になっていて、この番号とGlyph [最後のID番号-1]の差分で最後のIDの長さも取得できるようになっています。Offset値の記述形式となる型は16bit整数のunsigned short と 32bit整数のunsigned intの2種類があり、どちらが使われるかはheadタグテーブルのindexToLocFormat値が0なら16bit、1なら32bitとなります。
+
 glyfタグテーブルのそれぞれのGlyph ID毎のglyfタグテーブル開始位置からのOffset値を順に格納しています。次のOffset値との差分が、そのGlyph IDの長さになります。Glyph ID [0] ~ Glyph [最後のID番号-1]の数のOffsetがあります。Glyph [最後のID番号]にはこのテーブルの終端、長さとも言えるOffset番号になっていて、この番号とGlyph [最後のID番号-1]の差分で最後のIDの長さも取得できるようになっています。Offset値の記述形式となる型は16bit整数のunsigned short と 32bit整数のunsigned intの2種類があり、どちらが使われるかはheadタグテーブルのindexToLocFormat値が0なら16bit、1なら32bitとなります。
 +
 
 +
 
 +
 IMPACT.ttfの結果は以下のようになっています。
 +
 
 +
 
 +
[[メディア:IMPACT TAG loca TebleInfo.txt|IMPACT_TAG_loca_TebleInfo.txt]]
 +
 
 +
 
 +
 
 +
==== glyf ====
 +
 グリフの形状を記述した核となるテーブルがglyfタグテーブルです。glyfはGlyphのことです。以下のような構造の可変長のテーブルになっています。
 +
 
 +
 
  
 
== '''関連記事''' ==
 
== '''関連記事''' ==

2022年9月17日 (土) 00:00時点における最新版



個人用ツール
名前空間

変種
操作
案内
ツールボックス