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
函式擷取的數據格式。 此參數可以是下列其中一個值。
價值 | 意義 |
---|---|
|
函式會將曲線數據擷取為立方貝塞爾曲線(不是二次方曲線格式)。 |
|
函式會擷取圖像點陣圖。 如需記憶體配置的相關信息,請參閱下列一節。 |
|
表示 uChar 參數是 TrueType Glyph Index,而不是字元碼。 如需 Glyph 索引的其他備註,請參閱 ExtTextOut 函式。 |
|
函式會擷取包含五個灰色層級的字元位圖。 |
|
函式會擷取包含17個灰色層級的字元點陣圖。 |
|
函式會擷取包含65個灰色層級的字元點陣圖。 |
|
函式只會擷取由 lpgm所指定的 GLYPHMETRICS 結構。 會忽略 lpvBuffer。 此值會影響失敗時函式傳回值的意義;請參閱傳回值一節。 |
|
函式會擷取轉譯器原生格式的曲線數據點,並使用字型的設計單位。 |
|
函式只會傳回未隱藏的外框。 此旗標只適用於GGO_BEZIER和GGO_NATIVE。 |
請注意,針對GGO_GRAYn_BITMAP值,函式會擷取包含 n^2+1 (n 平方加一) 灰色層級的字元位圖。
[out] lpgm
GLYPHMETRICS 結構的指標,描述字元儲存格中字元的位置。
[in] cjBuffer
緩衝區的大小,以位元組為單位(*lpvBuffer),其中函式是複製大綱字元的相關信息。 如果此值為零,函式會傳回緩衝區的必要大小。
[out] pvBuffer
緩衝區的指標,可接收大綱字元的相關信息。 如果此值 NULL,則函式會傳回所需的緩衝區大小。
[in] lpmat2
指定字元轉換矩陣之 MAT2 結構的指標。
傳回值
如果指定GGO_BITMAP、GGO_GRAY2_BITMAP、GGO_GRAY4_BITMAP、GGO_GRAY8_BITMAP或GGO_NATIVE,且函式成功,則傳回值會大於零:否則,傳回值會GDI_ERROR。 如果指定其中一個旗標,且緩衝區大小或位址為零,則傳回值會以位元組為單位指定所需的緩衝區大小。
如果指定GGO_METRICS且函式失敗,則傳回值會GDI_ERROR。
言論
getGlyphOutline 函式所傳回
當指定GGO_BITMAP時,GetGlyphOutline 所傳回的字元點陣圖是 DWORD 對齊、數據列導向、單色位圖。 指定GGO_GRAY2_BITMAP時,傳回的位圖是 DWORD 對齊、數據列導向的位元組陣列,其值範圍從 0 到 4。 指定GGO_GRAY4_BITMAP時,傳回的位圖是 DWORD 對齊、數據列導向的位元組陣列,其值範圍從 0 到 16。 指定GGO_GRAY8_BITMAP時,傳回的位圖是 DWORD 對齊、數據列導向的位元組陣列,其值範圍從 0 到 64。
指定GGO_NATIVE時,GetGlyphOutline 所傳回的原生緩衝區是字元外框。 圖像外框會以一或多個輪廓的數列傳迴,這些輪廓是由 TTPOLYGONHEADER 結構所定義,後面接著一或多個曲線。 輪廓中的每個曲線都是由TTPOLYCURVE 結構
GLYPHMETRICS 結構會指定字元儲存格的寬度,以及字元儲存格中字元的位置。 字元儲存格的原點位於字型基準的儲存格左邊。 圖像原點的位置相對於字元儲存格原點。 字元數據格、基準和其他字型全域度量的高度是由 OUTLINETEXTMETRIC 結構所指定。
應用程式可以在 lpMatrix 參數中指定 2-by-2 轉換矩陣,以點陣圖或原生格式擷取的字元。 例如,您可以使用矩陣乘法,透過剪下、旋轉、縮放或三者的任何組合來修改圖像。
字元外框的其他資訊位於 TrueType 和 OpenType 技術規格中。
注意
wingdi.h 標頭會根據 UNICODE 預處理器常數的定義,將 GetGlyphOutline 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | wingdi.h (包括 Windows.h) |
連結庫 | Gdi32.lib |
DLL | Gdi32.dll |