繁体   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