3

問題

画像上で何百回も多角形を選択する必要があります。助けるために、私はpythonコンソールを使用して、これを計算された方法で実行するスクリプトを作成しようとしています(同じサイズの領域、数百の異なる開始点)。Windows 10 マシンで GIMP 2.8.18 を使用しています。

問題は、関数 pdb.gimp_image_select_polygon が機能していないように見えることです。

コード

Pythonコンソールでやろうとしていることの骨子は次のとおりです。



    theImage = gimp.image_list()[0]
    OP_ADD = 0
    POINT_COUNT = 5
    x = 0
    y = 0
    points = [0.0 for i in range(0,10)]
    points[0] = 64.0 + (128.0 * x)
    points[1] = 64.0 * y
    points[2] = 128.0 * x
    points[3] = 32.0 + (64.0 * y)
    points[4] = 64.0 + (128.0 * x)
    points[5] = 64.0 + (64.0 * y)
    points[6] = 128.0 + (128.0 * x)
    points[7] = 32.0 + (64.0 * y)
    points[8] = 64.0 + (128.0 * x)
    points[9] = 64.0 * y
    pdb.gimp_image_select_polygon(theImage, OP_ADD, POINT_COUNT, points)

これが実行されると、何も起こりません。OTOH、別の選択関数を使用すると、選択が得られます。



    pdb.gimp_image_select_rectangle(theImage, 0, 64 ,0 ,128 ,32)

gimp_image_select_polygon を使用してもトレースバック エラーが発生しないため、正しい数のパラメーターと正しいタイプのパラメーターがあることがわかります。さまざまなことを試しましたが、オンラインで多くのヘルプを見つけることができません。

私のコードに問題がある人はいますか、それとも GIMP の python エンジンは完全におかしいですか?

4

1 に答える 1

4

長さの引数は座標の数であり、ポイントの数ではありません (したがって、通常は double)

OP_REPLACE私のバージョンでは定義されていません。

(100,100) の 100x100 の正方形の場合:

p=[100,100,100,200,200,200,200,100]
pdb.gimp_image_select_polygon(image, CHANNEL_OP_REPLACE,len(p),p)
于 2016-09-23T06:44:38.477 に答える