1

ですから、これは主に楽しみのためです。私はいくつかのフォントの中で自分の道を探し回っています。いくつか質問があります。誰かがこの種のことをした場合は、助けていただければ幸いです。

cmapテーブル

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

グリフテーブル

これは本当に私の頭を傷つけています。私はここにあるものを通ります。そのページの2番目の表を見ると、「n」endPtsOfContours、「n」命令、および「n」フラグがありますが、輪郭と同じ数のフラグがあるかどうかはわかりません(輪郭の数はわかっています)。私は持っています)。次に、さらに悪いことに..(楽しい!)xCoordsの配列とyCoordsの配列があります。これらの配列の長さは不確定であり、BYTEまたはSHORTのいずれかのデータが含まれている可能性がありますが、どちらかについては説明しません。

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

4

2 に答える 2

1

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

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

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

私はずっと前にTrueTypeテーブルをウォークするコードを書きました-もちろんCで。結果をTTFDumpの出力(Microsoftから引き続き入手可能)と比較できると思います。

于 2010-06-02T15:53:03.393 に答える
0

cmapエンコーディングの場合、最初に任意のUnicodeエンコーディングを優先します。プラットフォームID=0またはプラットフォームID=3、エンコーディングID = 10または1(名前テーブルのプラットフォームIDリスト)、および4よりもcmap形式12(完全なUnicodeスペース)を優先します。 (基本的な多言語面のみ)。その後、エンコーディングの相対的な優先順位はより曖昧になります{Wansung、BIG5、PRC、Shift-JIS ...}が、フォントは主に日本語、中国語、または韓国語のフォントになる傾向があるため、重要性は低くなります。上記を一度に。フォーマット4と12は、0、2、6で最も一般的です。フォーマット14は、フォーマット4または12の補足として、バリエーションセレクターを備えたCJKフォントで見つけることができ、フォーマット13は、特別な「最後の手段」フォントで見つけることができます。 (フォントのフォールバック中に、指定されたテキストをサポートする適切な選択肢がない場合に使用されます)。

于 2012-10-26T04:10:01.950 に答える