在GIMP中的路径上附加文本

时间:2011-05-18 07:09:46

标签: python gimp script-fu

我现在几天都在发现gimp API(使用python-fu),我真的很喜欢它。 然而,我无法做到的事情:在路径上附加文本。

使用用户界面执行它非常容易(创建一个路径>创建一个文本>点击工具箱中的路径上的文字)...但是,正如您所料,当事情发生时,我不是爱简单。这就是我试图用python做的原因。

以下是我已经设法做的事情:

  • 创建图层
  • 在其上添加路径
  • 创建新文字
  • 显示整件事

我现在所要做的就是学习如何让我的文字沿着这条路走。

热烈欢迎帮助。

谢谢

1 个答案:

答案 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/上提供

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