GIMP:Python点を打つ、線を引く

gimp-python-draw.png

線を引く

gimp_paintbrush_default(drawable,点の数(×2),点の座標群)

points =  [10,10, 20,20]
pdb.gimp_paintbrush_default(layer, len(points), points)

gimp_paintbrush(drawable,フェードアウト,点の数(×2),点の座標配列,method,gradient-length)

gimp_paintbrush_defaultよりももっと詳しく設定したい場合にこれを使うんだな、きっと。

method INT32 PAINR_CONSTANT(0) か PAINT-INCREMENTAL(1)のどっちか
gradient-length FLOAT グラデーションの長さ(0以上)

gimp-pencil(drawable,点の数(×2),点の座標群)

gimp_paintbrush_defaultは現在選択されているブラシの設定で線を引いてくれるのにたいし、
gimp_pencilは固定のペンである。多分鉛筆ツールだ。
ちょっと融通が効かないからgimp_paintbrush_defaultの方がよさそう。

点を打つ

gimp_paintbrush_default(drawable,2,点の座標)

2個に限定することによって点が打てる。
いっぱい点を打つにはいっぱいそのつどgimp_paintbrush_defaultを呼ぶ。

コード

from gimpfu import *
def plugin_saturation(timg, tdrawable):
    pdb.gimp_message("Start drop the points")
    points=[[0,150],[80,100],[120,200],[180,28],[240,150]]
    for x in points:
        pdb.gimp_pencil(tdrawable,len(x),x)
    pdb.gimp_image_flip(timg, ORIENTATION_VERTICAL)
    pdb.gimp_message("I drop the points")
register(
        "plugin_saturation",
        "dots",
        "dots",
        "Miffy Sora",
        "Miffy Sora",
        "2013",
        "<Image>/Image/top-saturation...",
        "RGB*, GRAY*",
        [],
        [],
        plugin_saturation)
 
main()

1ピクセルの点を打つ

gimp_drawable_set_pixel(drawable,x,y,チャンネル数,色値(int4個の配列))

col=[255,0,0,255]
            pdb.gimp_drawable_set_pixel(drawable,x,y,4,col)
pdb.gimp_drawable_update(drawable, 0, 0, drawable.width, drawable.height)#これをしないと一瞬なにも起こらなかったかのようになってしまう

サポートサイト Wikidot.com