gpt4 book ai didi

GIMP Python-fu 嵌套图层组

转载 作者:行者123 更新时间:2023-12-02 06:12:46 24 4
gpt4 key购买 nike

我似乎无法在 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"

(使用 img.GroupLayer 调用在 gimp 2.8 上有问题 - 应该是 future 的发展方向)

创建组后,您可以使用 a 将其插入图像上的任何位置

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)

关于GIMP Python-fu 嵌套图层组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13882808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com