我现在几天都在发现gimp API(使用python-fu),我真的很喜欢它。 然而,我无法做到的事情:在路径上附加文本。
使用用户界面执行它非常容易(创建一个路径>创建一个文本>点击工具箱中的路径上的文字)...但是,正如您所料,当事情发生时,我不是爱简单。这就是我试图用python做的原因。
以下是我已经设法做的事情:
我现在所要做的就是学习如何让我的文字沿着这条路走。
热烈欢迎帮助。
谢谢
答案 0 :(得分:4)
经过几个小时的互联网研究(没有裸体的人)的研究,我没有发现我的问题。这就是为什么我决定查看Gimp源代码以了解神奇的“文本沿路径”是如何工作的......而且似乎没有通过pdb使这个动作可用。
在那之后,为了确定,我已经询问了gimp开发者的邮件列表和某人(我不知道我是否可以在这里告诉他的名字)回复了我:
“文字沿着 路径“功能基本上是一个黑客,而且从来没有打算成为一个 最终产品。适当的文本路径功能将允许路径 相应地更改和更改文本。翘曲的方式 渲染的文字也不太理想。因为计划总是如此 功能会改变,没有创建PDB钩子 它
另一个告诉我如何创建自己的“沿路径文本”插件:
但是,据我所知,路径中的Bezier笔划具有以下属性,对其控制点和句柄应用仿射变换等效于 将相同的变换应用于曲线的每个点。所以你可以这样做:
- 确定一条“参考路径”,即沿着文本的直线路径(或在其中间运行)
- 对于每个笔划迭代控制点,并在每个点(“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,并在http://gimp-path-tools.sourceforge.net/上提供
我希望(感谢这两个家伙)这篇文章会有所帮助。