2017-08-17 92 views
0

我正在使用python-fu,我想复制过滤器iwarp,我将其添加到一个图层到另一个图层,我刚添加到文档中。有没有办法使用python将一个过滤器从一个图层复制到另一个图层

我的代码:

document = gimp.image_list()[0] 
layer_with_filter = document.layers[0] 
layer_without_filter = document.layers[3] 

我没有找到一个方法来查看使用:

dir(layer_with_filter) 

如果有添加到层的效果或过滤器,是更多钞票知道或不过滤器发生的变化发生在别的地方?

谢谢

回答

1

不,这是不可能的。

通过Python,您可以执行几乎所有的过滤器,并将其放在Python端的任意值上。但是,没有办法告诉GIMP重复使用先前值的过滤器,或者检索Python端过滤器操作中使用的值。

I-Warp特别不能以编程方式使用,因为它依靠与插件窗口的实时交互来创建变形贴图 - 您在那里运气不佳。

但是,可以用“的iWARP”插件来完成任何事情,可以用做了“位移”插件(检查Filters->Map->Displace...)一个可用编程,你可以应用效果使用Python将位移应用到其他图层。但是,“Displace”需要两个中间层,指示原始图像上每个像素使用的偏移量。这两层被组合为2D场,其中每个像素的值(〜其亮度)指示目标像素将被放置的偏移的一个坐标。在内部,这就是IWarp所做的事情 - 然而,位移图本身是通过其“内部工具”创建的,如增长,缩小,移动等等 - 并且没有编程方式来检索IWarp使用的位移图,以便它可以粘贴在ayer中并与Displacement滤镜一起使用。但是如果你真的需要这个功能,那可能是最简单的方法:修改IWarp filter的源代码(用C语言)来添加一个按钮来“保存位移图” - 它可以创建两个适合的新图层被位移过滤器使用。回到编程重复其他过滤器的主题:GIMP的开发分支 - GIMP 2.9已经使用GEGL(通用图形库)(GIMP中的所有像素操作的新引擎)将大多数过滤器切换到完整的新框架。但是,Python绑定尚未更新,无法利用这些新过滤器。当它们终于到来时,可能存在调用来检索最后使用的值的可能性。

而且,再次特别针对IWarp,过滤器在开发版本中已被推广为完全交互式工具,并且没有机制检索该工具与一层的交互作用的结果以“重放”在其他层上。

+0

非常感谢您的宝贵意见! – AbdulHamid

相关问题