PDB のドキュメンテーション/命名規則は、Python を gimp で使用しようとしていて、理解するのが難しい場合、かなり逆になっています。最終的にgimp.GroupLayer
(PDBリストgimp-layer-group-new
)を見つけて、新しいレイヤーグループを作成しました。これを画像に挿入し、レイヤー グループとして表示するにはどうすればよいでしょうか。
私はこのようなものを試してきました:
img = gimp.image_list()[0]
gl = gimp.GroupLayer(img, "Should be a folder", 1, 1, 0)
img.insert_layer(gl)
私を本当に混乱させる最初のことは、他の実際のレイヤーのコンテナーとして機能する必要があるにもかかわらず、GroupLayer の高さと幅を指定することを期待していることです (から継承するため、これを期待していますLayer
が、それは別の問題です)。
本当の問題は、新しく作成した を挿入するGroupLayer
と、通常のレイヤー (レイヤー アイコンにフォルダーがない) として表示されることです。1 つは通常のレイヤー、もう 1 つはグループ レイヤーの 2 つのレイヤーを作成して、これを確認しました。グループ レイヤーを画像に追加し、グループ レイヤーを親として通常レイヤーを画像に追加します。
img = gimp.image_list()[0]
gl = gimp.GroupLayer(img, "Group Layer", 1, 1, 0)
l = gimp.Layer(img, "Real Layer", 1, 1, 0)
img.insert_layer(gl)
img.insert_layer(l, gl) # gl should be the parent
私が得るのはエラーだけです:
Calling error for procedure 'gimp-image-insert-layer':
Item 'group layer #1' (34) cannot be used because it is not a group item`
他の誰かがこれを理解しましたか?
アップデート
ジョアン・ソ・ブエノ
gimp-git でこの問題を修正しました。Frgom gimp 2.8.12 では、gimp.GroupLayer を
呼び出すと
gimp.GroupLayer(img, [name="", opacity=100.0, mode=gimp.NORMAL_MODE])
署名が機能します。