Я думаю, что самый простой способ - использовать «копирование» и «вставку» через 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-способ» создания слоев - это создание его с помощью множества обязательных параметров, а затем еще один вызов для добавления его в изображение.