在python-fu接口的任何地方,我似乎找不到任何方法来将Group层添加到另一个Group层。
我也尝试过在Gimp.Layer对象上查找方法,但没有成功。
如何使用python-fu将一个图层组添加到另一个图层组?
发布于 2012-12-15 19:07:58
对Python-fu上的层组的支持是在2.8发布之前的最后几分钟添加的,并且相当不完整。
因此,在GIMP 2.8中创建正确的层组的唯一方法是使用pdb调用:
group = pdb.gimp_layer_group_new(img)
group.name = "my group"(在GIMP2.8上使用img.GroupLayer调用是错误的-应该是未来的发展方向)
一旦拥有了组,就可以使用
pdb.gimp_image_insert_layer(<img>, <layer>, <parent>, <position>)如下所示:
>>> img = gimp.Image(640, 480, RGB)
>>> pdb.gimp_display_new(img)
<display>
>>> parent_group = pdb.gimp_layer_group_new(img)
>>> child_group_1 = pdb.gimp_layer_group_new(img)
>>> child_group_2 = pdb.gimp_layer_group_new(img)
>>> grand_child_group = pdb.gimp_layer_group_new(img)
>>> img.add_layer(parent_group, 0)
>>> pdb.gimp_image_insert_layer(img, child_group_1, parent_group,0)
>>> pdb.gimp_image_insert_layer(img, child_group_2, parent_group,1)
>>> pdb.gimp_image_insert_layer(img, grand_child_group, child_group_1,0)
>>> l1 = gimp.Layer(img, "test", 320,240)
>>> pdb.gimp_image_insert_layer(img,l1, grand_child_group,0)因此,确实存在这种极端的API不对称性,在这种情况下,您通过父对象上的"add_layer“方法向图像添加图层和组,但必须将其中一个添加到图层组中,您必须使用pdb.gimp_image_insert_layer调用。
update (2015年2月)- gimp.GroupLayer()的错误已经在GIMP的git中修复,从GIMP 2.8.16开始它将正常工作。现在,要添加新的图层组,只需执行以下操作:
>>> g = gimp.GroupLayer(img)
>>> pdb.gimp_image_insert_layer(img, g, None, 0)https://stackoverflow.com/questions/13882808
复制相似问题