共用方式為


IDWriteFactory::CreateGlyphRunAnalysis 方法 (dwrite.h)

建立圖像執行分析物件,此物件會封裝用來呈現圖像執行的資訊。

語法

HRESULT CreateGlyphRunAnalysis(
  [in]           DWRITE_GLYPH_RUN const  *glyphRun,
                 FLOAT                   pixelsPerDip,
  [in, optional] DWRITE_MATRIX const     *transform,
                 DWRITE_RENDERING_MODE   renderingMode,
                 DWRITE_MEASURING_MODE   measuringMode,
                 FLOAT                   baselineOriginX,
                 FLOAT                   baselineOriginY,
  [out]          IDWriteGlyphRunAnalysis **glyphRunAnalysis
);

參數

[in] glyphRun

類型: const DWRITE_GLYPH_RUN*

結構,包含字元執行 (字型臉部、進階等) 的屬性。

pixelsPerDip

類型: FLOAT

每個 DIP (裝置獨立圖元) 實體像素數目。 例如,如果轉譯為96 DPI位圖,則 pixelPerDip 為1。 如果轉譯為 120 DPI 位圖,則 pixelPerDip 為 1.25。

[in, optional] transform

類型: const DWRITE_MATRIX*

套用至字元及其位置的選擇性轉換。 此轉換會在指定 emSizepixelPerDip 的縮放之後套用。

renderingMode

類型: DWRITE_RENDERING_MODE

值,指定轉譯模式,這必須是其中一個點陣轉譯模式, (即非預設值,而不是大綱) 。

measuringMode

類型: DWRITE_MEASURING_MODE

指定要與字元搭配使用的測量模式。

baselineOriginX

類型: FLOAT

基準原點的水準位置 (X 座標) ,以 DIP 為單位。

baselineOriginY

類型: FLOAT

垂直位置 (基準原點的 Y 座標) ,以 DIP 為單位。

[out] glyphRunAnalysis

類型: IDWriteGlyphRunAnalysis**

當這個方法傳回時,會包含新建立圖像執行分析物件的指標位址。

傳回值

類型: HRESULT

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

圖像執行分析物件包含分析圖像執行的結果,包括所有圖像的位置,以及字型快取中所有點陣化圖像的參考。

範例

下列程式代碼範例示範如何建立圖像執行分析物件。 在此範例中,正在使用空的字元執行。

HRESULT CreateGlyphRunAnalysis(IDWriteFontFace *pFontFace, IDWriteGlyphRunAnalysis **ppGlyphRunAnalysis)
{
    HRESULT hr = S_OK;
    IDWriteFactory* pDWriteFactory = NULL;

    // Create the DirectWrite factory.
    hr = DWriteCreateFactory(
            DWRITE_FACTORY_TYPE_SHARED,
            __uuidof(IDWriteFactory),
            reinterpret_cast<IUnknown**>(&pDWriteFactory)
            );

    DWRITE_GLYPH_RUN emptyGlyphRun = { 0 };
    UINT16 glyphIndex = 0;
    
    emptyGlyphRun.fontFace = pFontFace;
    emptyGlyphRun.glyphIndices = &glyphIndex;
    emptyGlyphRun.glyphCount = 0;
   
    emptyGlyphRun.fontEmSize = 12;

    IDWriteGlyphRunAnalysis* pGlyphRunAnalysis = NULL;

    if (SUCCEEDED(hr))
    {
        hr = pDWriteFactory->CreateGlyphRunAnalysis(
            &emptyGlyphRun,
            1.0f, // pixelsPerDip,
            NULL, // transform,
            DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC,
            DWRITE_MEASURING_MODE_GDI_CLASSIC,
            0.0f, // baselineOriginX,
            0.0f, // baselineOriginY,
            &pGlyphRunAnalysis);
    }
    
    *ppGlyphRunAnalysis = pGlyphRunAnalysis;

    SafeRelease(&pDWriteFactory);

    return S_OK;
}

規格需求

需求
最低支援的用戶端 適用於 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

另請參閱

IDWriteFactory