如果您尝试在 gimp 中使用 python 做一些事情并且很难弄清楚,那么 PDB 的文档/命名约定是相当落后的。我最终找到gimp.GroupLayer
了(PDB lists 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`
有没有其他人知道这一点?
更新
乔奥·苏·布埃诺
我刚刚在 gimp-git 中解决了这个问题。Frgom gimp 2.8.12 on,
调用 gimp.GroupLayer 与
gimp.GroupLayer(img, [name="", opacity=100.0, mode=gimp.NORMAL_MODE])
签名一起工作。