2010/05/23(日) [n年前の日記]
#1 [cg_tools] GIMPでpython-fuを使ってみた
素晴らしい。分かりやすい。python-fu を使ってしまうと、script-fu ではもう書けなくなる…。いや、Lispに慣れてる人はそうでもないのかもしれないけど。
_Windows VistaのGimp 2.4.4にPython-fu - akJとackeyシリーズ 開発日記 を参考に作業。Python 2.6 は既にインストール済みなので、
ちなみに、gimp_vectors_stroke_new_from_points に渡す座標値のリストは、「コントロールポイント(開始) x,y」「アンカー x,y」「コントロールポイント(終了) x,y」の3つの座標で1つの位置を示すらしい。3角形を作るなら、2(x,y) x 3(コントロールポイントx2,アンカーx1) x 3角形 = 18個の値が必要になる、はず。直線を描くなら、コントロールポイントとアンカーの座標値は同じものを渡せばいいらしい。
_Windows VistaのGimp 2.4.4にPython-fu - akJとackeyシリーズ 開発日記 を参考に作業。Python 2.6 は既にインストール済みなので、
- PyCairo
- PyGObject
- PyGTK
◎ パスを作れるかどうか試してみた。 :
# python-fuを使うよ from gimpfu import * # 画像を作るよ image = pdb.gimp_image_new(256, 256, RGB) display = pdb.gimp_display_new(image) # パスを作るよ vectors = pdb.gimp_vectors_new(image, "arrowpath") pdb.gimp_image_add_vectors(image, vectors, 0) # パスとしてストロークを追加するよ controlpoints = [10,10,10,10,10,10,200,200,200,200,200,200,30,50,30,50,30,50] stroke_id = pdb.gimp_vectors_stroke_new_from_points(vectors, 0, len(controlpoints), controlpoints, TRUE) # パスを表示するよ pdb.gimp_vectors_set_visible(vectors, TRUE)controlpoints を計算で作れるようにすれば、色んな形のパスが作れるはず。パスは、回転ツールや拡大縮小ツールで拡大縮小回転しても画質が荒れる(?)こともないし、パスから選択範囲を作れば塗り潰しもできるし、ストロークの描画も可能。
ちなみに、gimp_vectors_stroke_new_from_points に渡す座標値のリストは、「コントロールポイント(開始) x,y」「アンカー x,y」「コントロールポイント(終了) x,y」の3つの座標で1つの位置を示すらしい。3角形を作るなら、2(x,y) x 3(コントロールポイントx2,アンカーx1) x 3角形 = 18個の値が必要になる、はず。直線を描くなら、コントロールポイントとアンカーの座標値は同じものを渡せばいいらしい。
[ ツッコむ ]
以上です。