Python 在GIMP中的路径上附加文本
我发现GIMPAPI已经有几天了(使用PythonFu),我真的很喜欢它。 但是,有一件事我无法做到:在路径上附加文本 使用用户界面执行此操作非常简单(创建路径>创建文本>单击工具箱中沿路径的文本)。。。但是,正如你所料,我不喜欢事情容易的时候。这就是为什么我尝试使用python来实现它 以下是我已经设法做到的:Python 在GIMP中的路径上附加文本,python,gimp,script-fu,Python,Gimp,Script Fu,我发现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添加到新笔划
我希望(感谢这两个人)这篇文章会有所帮助。事实上,正如gimp开发邮件列表中提到的,可以添加一个pdb功能(而且我们可能无论如何都应该这样做)能够以编程方式使用当前的文本到路径功能。但是,对于任何现实生活中的用途来说,该功能都非常差,最好使用另一个插件或自己编码。