喜びと利益のためにオペンティプフォントの解析(これらの愚かなテーブルを理解している人はいますか?)

StackOverflow https://stackoverflow.com/questions/2957441

質問

だから、これは主に楽しみのためです、私は周りを突っ込んで、いくつかのフォントの中に自分の道を見つけようとしています。いくつかの質問があります。誰かがこの種のことをしたなら、本当に助けてくれます。

CMAPテーブル

私がテストしているフォントには、さまざまな形式のいくつかのCMAPサブテーブルが含まれています。私はそれらを読むことができますが、私はどちらを使うべきか分かりません。すなわち。最も適切なサブテーブルを選択するための戦略は何ですか?これは理にかなっていますか?

glyfテーブル

これは本当に私の頭を傷つけています。私は何をしているのか ここに. 。そのページの2番目のテーブルを見ると、「n」endptsofcontours、 'n'命令、「n」フラグがありますが、輪郭と同じ数のフラグがあるかどうかは明確ではありません(輪郭の数はわかっています私は持っている)。それから、さらに悪化するために..(楽しい!)XCOORDSの配列とYCOORDSの配列があります。これらの配列は不確定な長さであるように見え、バイトまたは短いいずれかのデータが含まれている可能性がありますが、どちらを伝えるつもりはありません。

わかりました、これが指示とフラグの目的であると思いますが、おそらくあなたが言うことができるように、私はそれらに対処する方法を本当に知らないでしょう。座標データにアクセスするには、TrueTypeインタープリターが必要ですか?

役に立ちましたか?

解決

もちろん、あなたは正しいです。

フラグビット1:設定されている場合、対応するX座標は1バイトの長さです。設定されていない場合、2バイト。

フラグビット2:設定されている場合、対応するY座標は1バイトの長さです。設定されていない場合、2バイト。

TrueTypeテーブルを歩くためにコードを書きました 長いです しばらく前 - もちろんc。結果をttfdumpの出力と比較できると思います(まだ利用可能です Microsoftから).

他のヒント

CMAPエンコードの場合、最初にエンコードをエンコードID = 10または1のプラットフォームIDまたはプラットフォームID = 3のいずれかで、最初にエンコードするユニコードを支持します(プラットフォームIDリストのリスト 名前テーブル)、およびCMAP形式12(完全なユニコードスペース)4(基本的な多言語のみ)を支持します。その後、エンコーディングの相対的な優先順位はより曖昧になります{wansung、big5、prc、shift -jis ...}、しかし、フォントは主に日本、中国語、または韓国のフォントである傾向があるため、それほど重要ではありません - すべてではありません。一度に上。フォーマット4と12は、0、2、6で最も一般的なものです。フォーマット14は、フォーマット4または12のサプリメントとしてバリエーションセレクターを備えたCJKフォントにあり、形式13は特別な「ラストリゾート」フォントを見つけることができます(良い選択が与えられていない場合、フォントフォールバック中に使用されているテキストをサポートします)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top