5

python-fu インターフェイスのどこにも、グループ レイヤーを別のグループ レイヤーに追加する方法が見つからないようです。

Gimp.Layer オブジェクトでもメソッドを見つけようとしましたが、うまくいきませんでした。

python-fu を使用してグループ レイヤーを別のグループ レイヤーに追加するにはどうすればよいですか?

4

1 に答える 1

6

Python-fu でのレイヤ グループのサポートは、2.8 リリースの直前に追加されたもので、かなり不完全です。

したがって、GIMP 2.8 で適切なレイヤー グループを作成する唯一の方法は、pdb 呼び出しを使用することです。

group = pdb.gimp_layer_group_new(img)
group.name = "my group"

(img.GroupLayer 呼び出しを使用すると、gimp 2.8 でバグが発生します。将来的にはこのようにする必要があります)

グループを作成したら、

pdb.gimp_image_insert_layer(<img>, <layer>, <parent>, <position>)

のように:

>>> img = gimp.Image(640, 480, RGB)
>>> pdb.gimp_display_new(img)
<display>
>>> parent_group = pdb.gimp_layer_group_new(img)
>>> child_group_1 = pdb.gimp_layer_group_new(img)
>>> child_group_2 = pdb.gimp_layer_group_new(img)
>>> grand_child_group = pdb.gimp_layer_group_new(img)
>>> img.add_layer(parent_group, 0)
>>> pdb.gimp_image_insert_layer(img, child_group_1, parent_group,0)
>>> pdb.gimp_image_insert_layer(img, child_group_2, parent_group,1)
>>> pdb.gimp_image_insert_layer(img, grand_child_group, child_group_1,0)
>>> l1 = gimp.Layer(img, "test", 320,240)
>>> pdb.gimp_image_insert_layer(img,l1, grand_child_group,0)

したがって、実際には、この極端な API の非対称性があり、親の「add_layer」メソッドを使用してレイヤーとグループを画像に追加しますが、いずれかをレイヤー グループに追加する必要があり、pdb.gimp_image_insert_layer を使用する必要があります。電話。

更新 (2015 年 2 月) - gimp.GroupLayer() のバグは GIMP の git で修正され、GIMP 2.8.16 以降で正常に動作します。新しいグループ レイヤーを追加するために必要な作業は次のとおりです。

>>> g = gimp.GroupLayer(img)
>>> pdb.gimp_image_insert_layer(img, g, None, 0)
于 2012-12-15T11:07:58.313 に答える