次の方法で共有


文字アウトラインの取得

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

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

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

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

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