首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GIMP Python-fu嵌套组图层

GIMP Python-fu嵌套组图层
EN

Stack Overflow用户
提问于 2012-12-15 00:41:20
回答 1查看 2K关注 0票数 5

在python-fu接口的任何地方,我似乎找不到任何方法来将Group层添加到另一个Group层。

我也尝试过在Gimp.Layer对象上查找方法,但没有成功。

如何使用python-fu将一个图层组添加到另一个图层组?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-15 19:07:58

对Python-fu上的层组的支持是在2.8发布之前的最后几分钟添加的,并且相当不完整。

因此,在GIMP 2.8中创建正确的层组的唯一方法是使用pdb调用:

代码语言:javascript
复制
group = pdb.gimp_layer_group_new(img)
group.name = "my group"

(在GIMP2.8上使用img.GroupLayer调用是错误的-应该是未来的发展方向)

一旦拥有了组,就可以使用

代码语言:javascript
复制
pdb.gimp_image_insert_layer(<img>, <layer>, <parent>, <position>)

如下所示:

代码语言:javascript
复制
>>> 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开始它将正常工作。现在,要添加新的图层组,只需执行以下操作:

代码语言:javascript
复制
>>> g = gimp.GroupLayer(img)
>>> pdb.gimp_image_insert_layer(img, g, None, 0)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13882808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档