3

私はPythonでGimpプラグインを構築しています。ファイルに基づいてメモリにレイヤーをロードし、それを複数の画像に追加したいと思います(したがって、ファイルからのロード時間を回避します)。

ドキュメントにそれを行うための何かが見つかりませんでした:すべての関数が特定の画像にレイヤーを追加します(したがって、毎回ファイルからロードする必要がありますが、これは避けようとしています)。

これに対する回避策はありますか?

私が考えた解決策の1つは、レイヤーを「テンプレートイメージ」にロードしてから、他のイメージにコピーすることです。問題は、ある画像から別の画像にレイヤーをコピーする機能が見つからなかったことです。

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 に答える