我似乎在 python-fu 界面的任何地方都找不到将组层添加到另一个组层的任何方法。
我也尝试在 Gimp.Layer 对象上找到方法,但没有运气。
如何使用 python-fu 将图层组添加到另一个图层组?
对 Python-fu 上的图层组的支持是在 2.8 版本之前的最后几分钟添加的,并且相当不完整。
因此,在 GIMP 2.8 中创建适当图层组的唯一方法是使用 pdb 调用:
group = pdb.gimp_layer_group_new(img)
group.name = "my group"
(在 gimp 2.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称呼。
更新 (2015 年 2 月)- gimp.GroupLayer() 的错误已在 GIMP 的 git 中修复,它将从 GIMP 2.8.16 开始正常工作。现在添加一个新的组层所要做的就是:
>>> g = gimp.GroupLayer(img)
>>> pdb.gimp_image_insert_layer(img, g, None, 0)