【问题标题】:Drawing a string that follows a path using GDI+使用 GDI+ 绘制跟随路径的字符串
【发布时间】:2012-08-02 20:27:45
【问题描述】:

我整天都在为这件事摸不着头脑。我需要动态创建一个包含客户端提供的字符串的图像。唯一的问题是,字符串需要沿着如下图所示的曲线绘制。我还想指定曲线的角度,因为这个文本需要在多个产品上显示,并且每个产品的曲线都不同。

我尝试循环遍历字符串并显示每个字符,并为每个字符指定一个特定坐标以类似于抛物线,但为了使其有用,每个字符都需要旋转以适应曲线。有人对 System.Drawing 库有任何可能对我有用的建议吗?

【问题讨论】:

  • 这个人有一篇关于这个主题的博文(以及如何在 C# 中实现):planetclegg.com/projects/WarpingTextToSplines.html
  • @MichaelGraczyk 我能够生成一些弯曲的文本。我不得不用newPoints[i] = new PointF(finalX, finalY); newPath = new GraphicsPath(newPoints, textPath.PathTypes); 替换textPath.PathPoints[i] = new PointF(finalX, finalY);,因为PathPoints 是一个只读数组。由于每次迭代都会创建一个新路径,因此效率低于我的预期。此外,它被压扁和拉伸,因此需要花点时间才能让它看起来正确,但是,文本是沿着弯曲的路径前进的。

标签: c# asp.net graphics drawing gdi+


【解决方案1】:

我发现这篇关于在 VB.NET 中沿路径绘制文本的代码项目的文章 - 我确信标准代码转换器可以为您自动将其更改为 C#,它可能会解决您的问题!

http://www.codeproject.com/Articles/13864/Text-on-Path-with-VB-NET

【讨论】:

    【解决方案2】:

    经过一番研究,似乎 WPF 是生成扭曲文本时的最佳途径。一些谷歌搜索让我找到了this project。有少量的 XAML,它仍然是用 C# 编写的。感谢@lneir on codeproject 提供了如此出色的代码。它具有可扩展性、灵活性和出色的编写能力,而且最好的部分...没有贝塞尔曲线。

    我还提到需要在动态创建的图像上呈现此文本。事实证明,您可以将任何 WPF 控件转换为图像。 Here's a link I found.

    感谢您的回复。

    【讨论】:

      猜你喜欢
      • 2015-10-24
      • 2014-05-15
      • 2010-11-07
      • 2014-10-14
      • 1970-01-01
      • 2013-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多