【问题标题】:Direct2D Border Around Text文本周围的 Direct2D 边框
【发布时间】:2015-03-29 17:15:47
【问题描述】:

为了更好的视觉效果,想在我的文字周围画一个黑色边框。

目前我正在绘制相同的文本 5 次。

如果我想在 x = 5, y = 10 上绘制文字,我会在实际位置上绘制一次。

然后我会用黑色绘制相同的文本,但位置稍有不同。

  1. x = 4, y = 10
  2. x = 5, y = 9

    ...

我只能想象这是表现不佳。或者这是正确的方法?

【问题讨论】:

  • 除了性能不佳之外,如果您希望边框为 5 像素或 20 像素,这将变得非常复杂。

标签: delphi direct2d delphi-xe7 directwrite


【解决方案1】:

我自己从来没有以正确的方式做到这一点,但他们似乎在这里做到了:http://www.codeproject.com/Articles/376597/Outline-Text-With-DirectWrite

【讨论】:

    【解决方案2】:

    我也这样做。但我突然意识到可能有更好的方法(还没有尝试过):先用稍大一点的黑色画,然后再用首选尺寸画白色。值得一试?让我知道情况如何。

    【讨论】:

    • 其实我试过这种方法,但结果证明这种方法有问题——字符串越长,看起来越奇怪。字符串中的第一个字母仅在左侧具有“轮廓”,最后一个仅在右侧具有“轮廓”,依此类推。它甚至对单个字母都不起作用。例如,想象一下字母“O”——较大的字母会很好地生成外边框,但不会有内边框,因为它实际上需要较小的字体!您可以在 Photoshop 中尝试一下,看看它是如何工作的。
    • 谢谢。我担心这太简单了!
    猜你喜欢
    • 2017-09-08
    • 2012-11-05
    • 2015-11-16
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-07
    • 1970-01-01
    相关资源
    最近更新 更多