我正在用 python 构建一个 Gimp 插件。我想基于文件在内存中加载一个图层,然后将其添加到多个图像中(从而避免从文件加载时间)。
我在文档中找不到任何内容:所有函数都将图层添加到特定图像中(因此我每次都必须从文件中加载,这是我试图避免的)。
有解决方法吗?
我考虑过的一种解决方案是将图层加载到“模板图像”中,然后将其复制到其他图像中。问题是我找不到将图层从一个图像复制到另一个图像的功能。
我认为最简单的方法是通过 PDB 使用“复制”和“粘贴”-
pdb.gimp_edit_copy (original_layer)
floating = pdb.gimp_edit_paste (target_layer)
(其中目标图层是另一个图像上的图层)。
这就像交互式地做同样的事情一样,创建了一个“浮动选择”。要让浮动选择覆盖目标图层的内容,请执行以下操作:
pdb.gimp_floating_sel_anchor(float)
或者使用粘贴的内容将其提升到新图层:
pdb.gimp_floating_sel_to_layer(float)
作为附加说明 - sinc GIMP 2.6,有一个用于在图像上创建新图层的快捷方式,AFAIK 没有在源代码之外记录 -new_layer
图像对象上的方法。
不带参数调用它会创建一个与图像大小相同的新透明层。这个快捷方式相当方便,因为创建图层的“pdb 方式”是通过使用大量强制参数来创建它,然后再调用一次将其添加到图像中。