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