GetGlyphOutlineA 関数 (wingdi.h)
GetGlyphOutline 関数は、指定したデバイス コンテキストで選択された TrueType フォントの文字のアウトラインまたはビットマップを取得します。
構文
DWORD GetGlyphOutlineA(
[in] HDC hdc,
[in] UINT uChar,
[in] UINT fuFormat,
[out] LPGLYPHMETRICS lpgm,
[in] DWORD cjBuffer,
[out] LPVOID pvBuffer,
[in] const MAT2 *lpmat2
);
パラメーター
[in] hdc
デバイス コンテキストへのハンドル。
[in] uChar
データが返される文字。
[in] fuFormat
関数が取得するデータの形式。 このパラメーターには、次のいずれかの値を指定できます。
価値 | 意味 |
---|---|
|
この関数は、曲線データを 3 次ベジエ スプラインとして取得します (2 次スプライン形式ではありません)。 |
|
この関数はグリフ ビットマップを取得します。 メモリ割り当ての詳細については、次の「解説」セクションを参照してください。 |
|
uChar パラメーターが文字コードではなく TrueType グリフ インデックスであることを示します。 グリフ のインデックス作成に関するその他の解説については、ExtTextOut 関数を参照してください。 |
|
この関数は、5 レベルの灰色を含むグリフ ビットマップを取得します。 |
|
この関数は、17 レベルの灰色を含むグリフ ビットマップを取得します。 |
|
この関数は、65 レベルの灰色を含むグリフ ビットマップを取得します。 |
|
この関数は、lpgmで指定された |
|
この関数は、ラスタライザーのネイティブ形式で曲線データ ポイントを取得し、フォントのデザイン単位を使用します。 |
|
この関数は、アンヒント アウトラインのみを返します。 このフラグは、GGO_BEZIERおよびGGO_NATIVEと組み合わせてのみ機能します。 |
GGO_GRAYn_BITMAP値の場合、関数は n^2+1 (n 2 乗+ 1) レベルの灰色を含むグリフ ビットマップを取得します。
[out] lpgm
文字セル内のグリフの配置を記述する GLYPHMETRICS 構造体へのポインター。
[in] cjBuffer
関数がアウトライン文字に関する情報をコピーするバッファー (*lpvBuffer) のサイズ (バイト単位)。 この値が 0 の場合、関数はバッファーの必要なサイズを返します。
[out] pvBuffer
アウトライン文字に関する情報を受け取るバッファーへのポインター。 この値が NULL
[in] lpmat2
文字の変換行列を指定する MAT2 構造体へのポインター。
戻り値
GGO_BITMAP、GGO_GRAY2_BITMAP、GGO_GRAY4_BITMAP、GGO_GRAY8_BITMAP、またはGGO_NATIVEが指定され、関数が成功した場合、戻り値は 0 より大きくなります。それ以外の場合、戻り値はGDI_ERROR。 これらのフラグのいずれかが指定され、バッファー サイズまたはアドレスが 0 の場合、戻り値は必要なバッファー サイズをバイト単位で指定します。
GGO_METRICSが指定され、関数が失敗した場合、戻り値はGDI_ERROR。
備考
GetGlyphOutline 関数によって返されるグリフ アウトラインは、グリッドに適合するグリフ用です。 (グリッドフィット グリフは、ビットマップイメージがグリフの元のデザインにできるだけ近い形で適合するように変更されたグリフです)。アプリケーションで変更されていないグリフ アウトラインが必要な場合は、フォントのサイズが em 単位と等しいフォントの文字のグリフ アウトラインを要求できます。 フォントの em 単位の値は、OUTLINETEXTMETRIC 構造体の otmEMSquare メンバーに格納されます。
GGO_BITMAPが指定されている場合に GetGlyphOutline
GGO_NATIVEが指定されている場合に、GetGlyphOutline
GLYPHMETRICS 構造体は、文字セルの幅と、文字セル内のグリフの位置を指定します。 文字セルの原点は、フォントのベースラインにあるセルの左側にあります。 グリフの原点の位置は、文字セルの原点を基準とします。 フォントに対する文字セル、ベースライン、およびその他のメトリックの高さは、OUTLINETEXTMETRIC 構造体によって与えられます。
アプリケーションは、lpMatrix パラメーターで 2 バイ 2 変換マトリックスを指定することで、ビットマップまたはネイティブ形式で取得された文字を変更できます。 たとえば、グリフは、せん断、回転、スケーリング、または行列乗算を使用した 3 つの任意の組み合わせによって変更できます。
グリフアウトラインに関する追加情報は、TrueType および OpenType 技術仕様にあります。
手記
wingdi.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetGlyphOutline を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows 2000 Server [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | wingdi.h (Windows.h を含む) |
ライブラリ | Gdi32.lib |
DLL | Gdi32.dll |
関連項目
ExtTextOut を
GLYPHMETRICS を
GetOutlineTextMetrics の
TTPOLYCURVE を
TTPOLYGONHEADER を