python – Gimp 2.8插件脚本 – 如何添加新的GroupLayer?
作者:互联网
如果你试图用gimp中的python做事并且难以弄清楚,那么PDB的文档/命名约定相当倒退.我最终找到了gimp.GroupLayer(PDB列出gimp-layer-group-new)来创建一个新的图层组.如何将其插入到图像中,并将其显示为图层组?
我一直在尝试这样的东西:
img = gimp.image_list()[0]
gl = gimp.GroupLayer(img, "Should be a folder", 1, 1, 0)
img.insert_layer(gl)
让我感到困惑的第一件事就是它希望我指定一个高度和高度. GroupLayer的宽度,即使它只是作为其他实际图层的容器(它期望这是因为它继承自Layer,但这是另一回事).
真正的问题是,当我插入新创建的GroupLayer时,它会显示为普通图层(图层图标中没有文件夹).我通过制作两个图层来验证这一点,一个是普通图层,另一个是图层组.我将组图层添加到图像,然后尝试将普通图层添加到图像中,并将组图层作为父图层:
img = gimp.image_list()[0]
gl = gimp.GroupLayer(img, "Group Layer", 1, 1, 0)
l = gimp.Layer(img, "Real Layer", 1, 1, 0)
img.insert_layer(gl)
img.insert_layer(l, gl) # gl should be the parent
我得到的只是错误:
Calling error for procedure 'gimp-image-insert-layer':
Item 'group layer #1' (34) cannot be used because it is not a group item`
有没有其他人想到这一点?
UPDATE
by Joao S. O. Bueno
我刚刚在gimp-git中解决了这个问题. Frgom gimp 2.8.12开启,
调用gimp.GroupLayer可以使用
gimp.GroupLayer(img,[name =“”,opacity = 100.0,mode = gimp.NORMAL_MODE])
签名.
解决方法:
似乎在创建gimp.GroupLayer时存在一个错误 – 它表现为普通层,即使Python中的对象类型显示为组层.
可以通过PDB创建工作组层,但是,使用pdb.gimp_layer_group_new(img) – 这次,tehre是另一个bug,该对象在Python中显示为一个nromal Layer对象 – 但是在将其插入图像后同
pdb.gimp_image_insert_layer(图像,图层,<父级(顶层使用无)>,< position>)它正常工作(通过图像“图层”属性检索对象会给你
一个合适的GroupLayer对象).
很抱歉 – 大多数是我的错 – 我会看看我是否可以为下一个GIMP 2.8修复行为 – GIMP 2.8几乎没有支持Python的图层组.
更新:从GIMP 2.8.12开始,调用gimp.GroupLayer(image,…)会创建一个合适的图层组.
标签:python,gimp 来源: https://codeday.me/bug/20190630/1331481.html