Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将图层从一个图像复制到另一个图像_Python_Gimp - Fatal编程技术网

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

Python 将图层从一个图像复制到另一个图像,python,gimp,Python,Gimp,我正在用python构建一个Gimp插件。我想根据一个文件在内存中加载一个层,然后将其添加到多个图像中(从而避免从文件中加载时间) 我在文档中找不到任何可以做到这一点的东西:all函数将层添加到一个特定的图像中(因此每次我都必须从文件中加载,这是我试图避免的) 有解决办法吗 我考虑过的一个解决方案是将图层加载到“模板图像”中,然后将其复制到其他图像中。问题是我找不到将图层从一个图像复制到另一个图像的功能。我认为最简单的方法是通过PDB使用“复制”和“粘贴”- pdb.gimp_edit_copy

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

我在文档中找不到任何可以做到这一点的东西:all函数将层添加到一个特定的图像中(因此每次我都必须从文件中加载,这是我试图避免的)

有解决办法吗


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

我认为最简单的方法是通过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在源代码之外没有记录——方法是在图像对象上创建新层


在没有参数的情况下调用,它会创建一个与图像大小相同的新透明层。这个快捷方式非常方便,因为创建层的“pdb方式”是frits创建它,带有许多强制参数,然后再调用一次将其添加到图像中。

此方法还将创建一个层的副本
new\u layer=pdb.gimp\u layer\u new\u from\u drawable(原始层,目标图像)
在gimp 2.10.20中,我发现pythonapi已经改变了,下面的工作方式变了:
buffer\u index=pdb.gimp\u edit\u copy(原始层);浮动层=pdb.gimp编辑粘贴(目标层、缓冲区索引)