Python 在GIMP中的路径上附加文本

Python 在GIMP中的路径上附加文本,python,gimp,script-fu,Python,Gimp,Script Fu,我发现GIMPAPI已经有几天了(使用PythonFu),我真的很喜欢它。 但是,有一件事我无法做到:在路径上附加文本 使用用户界面执行此操作非常简单(创建路径>创建文本>单击工具箱中沿路径的文本)。。。但是,正如你所料,我不喜欢事情容易的时候。这就是为什么我尝试使用python来实现它 以下是我已经设法做到的: 创建一个图层 在上面添加路径 创建新文本 展示整件事 我现在要做的就是学习如何让我的文章沿着这条路走 我们将非常感谢您的帮助 谢谢你在互联网右侧(没有裸体的人)进行了一个又一个小时

我发现GIMPAPI已经有几天了(使用PythonFu),我真的很喜欢它。 但是,有一件事我无法做到:在路径上附加文本

使用用户界面执行此操作非常简单(创建路径>创建文本>单击工具箱中沿路径的文本)。。。但是,正如你所料,我不喜欢事情容易的时候。这就是为什么我尝试使用python来实现它

以下是我已经设法做到的:

  • 创建一个图层
  • 在上面添加路径
  • 创建新文本
  • 展示整件事
我现在要做的就是学习如何让我的文章沿着这条路走

我们将非常感谢您的帮助


谢谢你

在互联网右侧(没有裸体的人)进行了一个又一个小时的研究之后,关于我的问题,我还没有发现这么多。这就是为什么我决定查看Gimp源代码,以了解神奇的“沿路径文本”实际上是如何工作的。。。而且似乎还没有任何措施可以通过pdb实现这一行动

在那之后,为了确定,我在gimp开发者的邮件列表上询问过,有人(我不知道我是否可以在这里告诉他的名字)回答我:

“文本”沿着 “路径”功能基本上是一种黑客行为,从未打算成为 最终产品。适当的文本沿路径函数将允许 修改并相应地修改文本。扭曲的方式 呈现的文本也不理想。因为这个计划一直都是 由于功能会发生变化,因此从未为其创建过PDB挂钩 它

另一个告诉我如何创建自己的“沿路径文本”插件:

然而,据我所知,路径中的贝塞尔笔划具有以下特性,对其控制点和控制柄应用仿射变换相当于 将相同的变换应用于曲线的每个点。所以你可以这样做:

  • 确定“参考路径”,即沿文本的直线路径(或穿过文本中间)
  • 对于每个笔划,迭代控制点,并在每个点(“C”):
    • 确定参考路径上的投影(距离参考路径原点的距离)(elt称之为“R”)及其距离
    • 找到目标路径上的对应点(pdb.gimp_path_get_point_at_dist()),“R”
    • 找到新控制点的位置C':与目标路径的距离相同,垂直
    • 计算控制柄的位置:
      • 计算H和C之间的dx/dy
      • 从新控制点C'计算等效位置H'
      • 应用旋转,以C'为中心,角度为R'中目标路径的方向(由前面的gimp_path_get_point_at_dist()返回),以生成新的手柄位置(H)
      • 重复第二个手柄
      • 将三元组C',H“1,H”2添加到新笔划
然后,他鼓励我研究两个插件,它们与向量做着类似的事情,分别名为ribbon path和slinky,并且在


我希望(感谢这两个人)这篇文章会有所帮助。

事实上,正如gimp开发邮件列表中提到的,可以添加一个pdb功能(而且我们可能无论如何都应该这样做)能够以编程方式使用当前的文本到路径功能。但是,对于任何现实生活中的用途来说,该功能都非常差,最好使用另一个插件或自己编码。