スクリプト試し中

スクリプトの命令一覧は、koppe panさんのスクリプトページにあります。


何となくわかったような気がするものをメモしておきます。

スクリプトを弄るのは好きなのですが、所詮は素人レベルです。
取り合えずエラーが出ずに動けばいいやって程度なので、わかる人から見れば無駄なことをしてることも多いと思います。
こうしたらいいよーとか分かる方、教えて貰えると嬉しいです。


えーと、何から書こう。
ちょっとしたものからメモ。(npaint_script06.zip 使用)

void message_box_ok(string s);//メッセージボックスを表示
これをウィンドウに入力する場合、
void message_box_ok("test");
こうするとtestと書かれたメッセージボックスが出る。
""は''でもOK。
全角文字だと文字化けする。
ウィンドウからの入力の場合 message_box_ok("test");
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

選択範囲拡張してから塗り潰しをしたい時。

for (int i = 0; i < 4; ++i){
np_cmd(1584);//選択範囲を拡張1pixel
}
np_cmd(778);//塗りつぶし

拡張サイズが固定ならこれもアリだけど、固定ではないなら手動入力の拡張を使ってもよい。

np_cmd(1552);//選択範囲を拡張
np_cmd(778);//塗りつぶし

ボックスで数値入力したあと、塗り潰しも問題なく実行される。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

リファレンス一覧見てると行始めに書いてある
voidやらnp_canvasやら、よく分からないんだけど取り合えず属性だと思うことにした。
で、(np_image img,int i)やら(np_layer nl)は
intはそのまま数字を当てはめてOK、stringは文字列用、np_imageやnp_layerはそれら属性のデータを先に取得指定する必要ありと。
iとかnl、imgとあるのは、既に変数宣言してあるってことかなーと。
変数=数学のx,yみたいなもの。

この考えを元にアクティブレイヤーの名前を変更にチャレンジ。
void set_name(np_layer nl,string name);//レイヤー名を設定
を見るとnp_layerがあるのでnp_layerを取得する。
np_layer get_active_layer(np_image img);//アクティブレイヤーを取得
今回はアクティブレイヤーを変更したいのでこれでいいと思う。
が、今度はnp_imageがついてきた。
np_imageも取得する必要があるっぽい?
np_image get_active_image();//アクティブな画像を取得
じゃ、これっすね。

//アクティブイメージを取得して、変数「img」に代入
np_image img = get_active_image();
//イメージ取得して指定したアクティブレイヤーを取得して「l」に代入
np_layer l = get_active_layer(img);
//アクティブイメージとレイヤーを取得できた=指定先決定したのでそこにtestを反映させる
set_name(l,"test");

代入式があった方が解りやすいから使ってるけど、使わないことも可能です。
その場合はこれ。
set_name(get_active_layer(get_active_image()),"test");

**********************

これらの考え方で大丈夫だと思う。多分・・・。
ずーっと()内の指定の意味が分からなくて、繋げるのに苦労してたんですよ。

取り合えず今私が理解したっぽいもののメモはここまで。
posted by むらせ at 2010年08月14日 18:14 | スクリプト | このブログの読者になる | 更新情報をチェックする