簡體   English   中英

如何在 DirectWrite 中使用 Direct2D 在圖像或抽象形狀周圍環繞文本?

[英]How to wrap text around images or abstract shapes in DirectWrite with Direct2D?

我找不到未渲染到矩形區域的文本塊示例。

理想情況下,如果ID2D1HwndRenderTarget.DrawText()能讓我提供多邊形Geometry而不是矩形,那就太好了。

我嘗試添加一個帶有contentBounds的 Direct2D 層,認為它可能會跳過這些層中的文本渲染。 它沒有按預期工作,它只是阻止渲染到仍在模擬下面的文本的區域。

我還嘗試將矩形區域應用於hwnd窗口本身。 它也阻止了渲染,但沒有移動文本。

IDWriteTextLayout僅支持矩形布局,但 DirectWrite 支持使用低級功能(文本分析、字形測量、字形整形)您可以想到的任何形狀。 從頭開始編寫自己的文本布局並非易事,但我編寫了一個 Windows 7 SDK 示例,其中包含一個“FlowLayout”,它演示了一個圓形和其他一些簡單的形狀。 它不需要任意幾何圖形,但您可以根據自己的需要進行調整(請參閱 FlowLayoutSource::GetNextRect 以計算每條線的寬度)。

https://github.com/pauldotknopf/WindowsSDK7-Samples/tree/master/multimedia/DirectWrite/CustomLayout 在此處輸入圖片說明

DirectWrite 僅支持矩形布局,因此您無法自動獲得更復雜的內容。 如果您希望它以不同的方式工作,則必須自己實現布局功能。 就像您已經觀察到的那樣,剪輯參數與文本布局無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM