3

我正在用 python 构建一个 Gimp 插件。我想基于文件在内存中加载一个图层,然后将其添加到多个图像中(从而避免从文件加载时间)。

我在文档中找不到任何内容:所有函数都将图层添加到特定图像中(因此我每次都必须从文件中加载,这是我试图避免的)。

有解决方法吗?

我考虑过的一种解决方案是将图层加载到“模板图像”中,然后将其复制到其他图像中。问题是我找不到将图层从一个图像复制到另一个图像的功能。

4

1 回答 1

4

我认为最简单的方法是通过 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 方式”是通过使用大量强制参数来创建它,然后再调用一次将其添加到图像中。

于 2011-11-29T14:51:29.100 回答