mieki256's diary



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 は既にインストール済みなので、 だけDLしてインストール。その後、GIMP 2.6.8 を再インストール。

パスを作れるかどうか試してみた。 :

# 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個の値が必要になる、はず。直線を描くなら、コントロールポイントとアンカーの座標値は同じものを渡せばいいらしい。

以上です。

過去ログ表示

Prev - 2010/05 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project