将图层从图像复制到另一个图像

时间:2011-11-29 14:29:30

标签: python gimp

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

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

有解决方法吗?

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

1 个答案:

答案 0 :(得分:2)

我认为最简单的方法是通过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方式”是创建它的frits,有许多必需参数,然后是另一个将它添加到图像的调用。