2022年10月13日

_kernテーブルむずっ。

以前、この記事を書いたがこの二日後には、あつかっているフォントファイルがOpenTypeだったというオチだった。同じような仕様だが、ここに来て漸く仕様の違いがでたkernテーブルはTrueTypeとで異なるテーブルの一つと言える。

ここから当時の記事

Fontファイルの中のkernテーブルの仕組みを理解しようとしてみてるのだけど、難しすぎる。公式サイトは何を言っているのかさっぱりわからん。

2バイトの左と右のグリフIDペア、2バイトのカーニング値で1つあたり6バイト。

Impact.ttfの
nTables = 0x00000b8a

Length = 0x000101ea
TapleIndex = 0x0008
となっていた。
ここで、長さが0x101eaは長すぎる。どこから出てくる値なのかと思ってしまう。そしてタプルインデックスって何?

ヘッダでは
kern の始まりアドレス 0002cf40 長さは00000b8e
nameの始まりアドレス 0002dad0 長さは00000ba1

だから、Length=0x101eaはありえないだろ。めちゃくちゃ長い。0x1eaならありえるのか?なんか間違えてるのかな。いや、それを信じたら0x9aeも違うし、因果関係さえ認められない。

Coverrage = 0x0600
だから
Vertical = 0x00000000
CrossStream = 0x00000001
Variation = 0x00000001

FormatNumber 0x00000000
NPair = 0x057c
SearchRange = 0x000b
EntrySelector = 0x0024
RangeShift = 0x0033

だった。
0x57cのペアがあるとしたら。カーニングの定義は、1つあたり6バイトだから0x57c×0x6=20E8でこれだけでも長さの0xb8eを越えてしまう。NPairの値を信じなければいいのか?Lengthも何かの間違いか。

もうちょっと考えないと公式ページを読み解けないな。

あー0x1ea×0x06ならb7cでb8aにかなり近い。なんか関係ありそうだな。でも明日考えよう。

投稿者-> よねっと at 2022年10月13日 22:00 | TrackBack(0)
トラックバック URL :
https://www.yo-net.jp/blog/edit/mt-tb.cgi/604
トラックバック
コメント
最近のエントリー
カレンダー
2022年10月
Su Mo Tu We Th Fr Sa
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
アーカイブ
検索


リンク
Powered by
Movable Type 2.65
カテゴリ別アーカイブ
2ちゃんねる [39件]
Android [8件]
BookPlace [1件]
DTM技術 [41件]
FLASH技術 [79件]
N通信 [49件]
PC技術 [2件]
RADIO技術 [10件]
SLOT [12件]
SUPER GT [2件]
Web技術 [25件]
ガンバ大阪 [16件]
プログラム技術 [9件]
ラジコン [10件]
作品紹介 [9件]
模型 [2件]
連絡 [254件]
合計:

今日:

昨日: