文字アウトラインの取得

GetGlyphOutline 関数を使用して、TrueType フォントからグリフのアウトラインを取得できます。 GetGlyphOutline 関数によって返されるグリフ アウトラインは、グリッドに適合するグリフ用です。 (グリッド適合グリフは、そのビットマップ イメージがグリフの元のデザインにできるだけ近い形で適合するように変更されています。アプリケーションで変更されていないグリフ アウトラインが必要な場合は、フォントの em 単位と同じサイズのフォントの文字のグリフ アウトラインを要求します。 (このサイズのフォントを作成するには、LOGFONT 構造体の lfHeight メンバーを、NEWTEXTMETRIC 構造体の ntmSizeEM メンバーの値の負の値に設定します)。

GetGlyphOutline は、アウトラインをビットマップとして、または一連のポリラインとスプラインとして返します。 アプリケーションがグリフアウトラインを一連のポリラインおよびスプラインとして取得すると、情報は TTPOLYGONHEADER 構造体の後に、グリフを記述するために必要な数の TTPOLYCURVE 構造体で返されます。 すべてのポイントは POINTFX 構造体として返され、相対移動ではなく絶対位置を表します。 TTPOLYGONHEADER 構造体の pfxStart メンバーによって指定された開始点は、輪郭線の始点です。 後続の TTPOLYCURVE 構造体には、ポリライン レコードまたはスプライン レコードを指定できます。

TrueType 文字アウトラインをレンダリングするには、ポリラインとスプライン レコードの両方を使用する必要があります。 システムは、ポリラインとスプラインの両方を簡単にレンダリングできます。 各ポリラインおよびスプライン レコードには、返されるレコードの数を最小限に抑えるために、可能な限り多くのシーケンシャル ポイントが含まれています。

TTPOLYGONHEADER 構造体で指定された開始点は、常にグリフのアウトライン上にあります。 指定した点は、等高線の始点と終点の両方として機能します。

このセクションでは、次のトピックについて説明します。