首页 > 解决方案 > DirectWrite + Direct2D 自定义文本渲染毛茸茸

问题描述

我正在评估 Direct2D 以用于研究目的,在此期间,我决定使用 DirectWrite 自定义文本渲染器渲染我常用的帮助文本,该渲染器将文本转换为路径几何图形以添加轮廓(如DWriteHelloWorld中所示MSDN 上的示例)。

然而,有些字母上有奇怪的“毛”或“角”(图片:笔画宽度为 3 和 5)。

不同笔划宽度的文本轮廓

也试过用其他字体(fe Consolas),效果是一样的。

源代码(VS 2015): https ://www.dropbox.com/s/v3204h0ww2cp0yk/FOR_STACKOVERFLOW_12.zip?dl=0

标签: direct2ddirectwrite

解决方案


我怀疑其原因是 D2D 中的默认展平容差不能很好地用于以足够小的尺寸呈现字形轮廓。根据 GetRecommendedRenderingMode(),通常您会为小尺寸使用位图渲染,而为较大尺寸使用轮廓渲染。如果您将字体大小增加 10 倍,您是否有相同的工件?


推荐阅读