2017-02-12 47 views
1

私は私を混乱させる何DirectWriteで斜体フォントの正しいテキスト幅を取得するには?

DWRITE_TEXT_METRICS dtm; 
    pTextLayout->GetMetrics(&dtm); 
    float minHeight = dtm.height; 
    float minWidth = dtm.widthIncludingTrailingWhitespace; 

、テキストメトリックでテキスト幅を取得し、その後

hr = g_pDWriteFactory->CreateTextLayout(text, textLength, *g_pTextFormat, 200000000, 200000000, g_pTextLayout); 

、次のコードでIDWriteTextLayoutオブジェクトを作成するには、フォントのスタイルがDWRITE_FONT_STYLE_OBLIQUEかDWRITE_FONT_STYLE_NORMALであるかどうかということです同じ文字列の幅は同じ値です。どうして?私は、フォントスタイルがDWRITE_FONT_STYLE_OBLIQUEのときには、幅がもっと大きくなることを期待しています。どのように私は斜めのテキストの正しい幅を得ることができますか?

ありがとうございました。

答えて

0

レイアウト・メトリックは、ヒント付きであるかどうかにかかわらず、各グリフの実際のインク・ボックスではないフォント・デザイン・メトリックに基づいています。レンダリングされたビットマップサイズに近いメトリックが必要な場合は、返されたレイアウトメトリックをデータGetOverhangMetrics()が返すように調整できます。しかし最終的に、結果のレイアウトの正確なピクセルサイズを知る唯一の方法は、レンダリングすることです。

あなたの質問に答えて、斜めのフォントの返されたレイアウトメトリックはすでに正しいです、彼らはあなたが期待するものとはわずかに異なることを意味します。

関連する問題