IDWriteTextAnalyzer::GetGlyphs 方法 (dwrite.h)
剖析輸入文字字串,並根據字型和寫入系統的轉譯規則,將其對應至一組字元和相關聯的圖像資料。
語法
HRESULT GetGlyphs(
[in] WCHAR const *textString,
UINT32 textLength,
IDWriteFontFace *fontFace,
BOOL isSideways,
BOOL isRightToLeft,
[in] DWRITE_SCRIPT_ANALYSIS const *scriptAnalysis,
[in, optional] WCHAR const *localeName,
[optional] IDWriteNumberSubstitution *numberSubstitution,
[in, optional] DWRITE_TYPOGRAPHIC_FEATURES const **features,
[in, optional] UINT32 const *featureRangeLengths,
UINT32 featureRanges,
UINT32 maxGlyphCount,
[out] UINT16 *clusterMap,
[out] DWRITE_SHAPING_TEXT_PROPERTIES *textProps,
[out] UINT16 *glyphIndices,
[out] DWRITE_SHAPING_GLYPH_PROPERTIES *glyphProps,
[out] UINT32 *actualGlyphCount
);
參數
[in] textString
類型: const WCHAR*
要轉換成字元的字元陣列。
textLength
類型: UINT32
textString的長度。
fontFace
類型: IDWriteFontFace*
字型臉部,這是輸出字元的來源。
isSideways
類型: BOOL
如果文字是要垂直繪製,則布林值旗標會設定為 TRUE 。
isRightToLeft
類型: BOOL
布林值旗標會針對由右至左文字設定為 TRUE 。
[in] scriptAnalysis
類型:const DWRITE_SCRIPT_ANALYSIS*
AnalysisScript呼叫中腳本分析結果的指標。
[in, optional] localeName
類型: const WCHAR*
選取字元時要使用的地區設定。 例如,相同的字元可能會對應至 ja-jp 與 zh-chs 的不同字元。 如果這是 Null,則會使用根據腳本的預設對應。
[optional] numberSubstitution
類型: IDWriteNumberSubstitution*
選擇性數位替代的指標,會根據 從 AnalyzeNumberSubstitution取得的結果,針對數位和相關數位字元選取適當的字元。 傳遞 Null 表示不需要替代,而且數位應該會收到標準字元。
[in, optional] features
類型:const DWRITE_TYPOGRAPHIC_FEATURES**
要用於每個特徵範圍之印刷樣式特徵集合的指標陣列。
[in, optional] featureRangeLengths
類型: const UINT32*
每個特徵範圍的長度,以字元為單位。
所有長度的總和應等於 textLength。
featureRanges
類型: UINT32
功能範圍的數目。
maxGlyphCount
類型: UINT32
可以傳回的最大字元數目。
[out] clusterMap
類型: UINT16*
當這個方法傳回時,會包含字元範圍到字元範圍的對應。
[out] textProps
類型: DWRITE_SHAPING_TEXT_PROPERTIES*
當這個方法傳回時,會包含結構陣列的指標,其中包含每個字元的成形屬性。
[out] glyphIndices
類型: UINT16*
輸出字元索引。
[out] glyphProps
類型: DWRITE_SHAPING_GLYPH_PROPERTIES*
當這個方法傳回時,會包含結構陣列的指標,其中包含每個輸出字元的成形屬性。
[out] actualGlyphCount
類型: UINT32*
當這個方法傳回時,如果呼叫成功,則包含傳回的實際字元數目。
傳回值
類型: HRESULT
如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
請注意,從字元到字元的對應通常是多對多。 每個字元輸出緩衝區的建議估計值 (3 * textLength / 2 + 16) 。 這不保證足夠。
actualGlyphCount參數的值只有在呼叫成功時才有效。 如果 maxGlyphCount 不夠大,則會傳回 HRESULT_FROM_WIN32 (ERROR_INSUFFICIENT_BUFFER) 。 應用程式應該配置較大的緩衝區,然後再試一次。
規格需求
最低支援的用戶端 | 適用于 Windows Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | dwrite.h |
程式庫 | Dwrite.lib |
Dll | Dwrite.dll |