何はともあれ、ひとつ、書いて動かしてみましょうか。
パラメータの種類、言い換えれば、入力や選択を促す 項目 を見てみます。
ユーザーとのインターフェイスの部分ですね。
通常のプログラミング言語の場合、ユーザーインターフェイスの記述は、結構、大変です。
ユーザビリティ と言って、如何に使い易い画面にするかは、重要な部分です。
処理方法とも、密接に結び付きますから、センスも必要な要素です。
しかし、GIMP の Script-Fu では、この部分が、簡素に出来ており、
逆の見方をすれば、自由なインターフェイスを組み立てる訳ではありません。
基本的には、既に出来上がっている GUI (グラフィカルユーザーインターフェイス) に、
ひと画面を加える形になります。
プログラム(関数)の中で扱う変数に値を 入力 もしくは 選択 する部分は、定型の記述方法になります。
その部分だけで、画像処理や変数の操作をしない例を、最初の練習に選びました。
変数に関しては、表示に当たって、型変換をしていますが ... 。.
ユーザーが指定する部分と、その結果を表示するだけの もの です。
ファイル名: Test_All_Input_Boxes_Results.scm
;関数(関数名と引数と表示のみ)
(define (script-fu-test-all-input-boxes-results
adjustment0
adjustment1
brush
channel
color
dirname
drawable
filename
font
gradient
image
layer
option
palette
pattern
string
toggle
value)
(gimp-message-set-handler 0)
;The current handler type { MESSAGE-BOX (0), CONSOLE (1), ERROR-CONSOLE (2) }
(gimp-message (string-append
"エラーメッセージ ではありません。" "\n"
"\n"
"Adjust0 is " (number->string adjustment0) "\n"
"Adjust1 is " (number->string adjustment1) "\n"
"Brush is " "'(" "\"" (list-ref brush 0) "\" "
(number->string (list-ref brush 1)) " "
(number->string (list-ref brush 2)) " "
(number->string (list-ref brush 3)) ")\n"
"Channel is " (number->string channel) "\n"
"Color is " "'(" (number->string (car color)) " "
(number->string (cadr color)) " "
(number->string (caddr color)) ")\n"
"DirName is " "\"" dirname "\"\n"
"Drawable is " (number->string drawable) "\n"
"FileName is " "\"" filename "\"\n"
"Font is " "\"" font "\"\n"
"Gradient is " "\"" gradient "\"\n"
"Image is " (number->string image) "\n"
"Layer is " (number->string layer) "\n"
"Option is " (number->string option) "\n"
"Palette is " "\"" palette "\"" "\n"
"Pattern is " "\"" pattern "\"" "\n"
"String is " "\"" string "\"\n"
"Toggle is " (if (equal? toggle TRUE) "TRUE\n" "FALSE\n")
"Value is " (number->string value)
))
)
;登録
(script-fu-register
"script-fu-test-all-input-boxes-results" ;func name
"<Image>/Script-Fu/Test/All Input Boxes & Results" ;menu label
"Show all input boxes" ;description
"ShiroYuki_Mot" ;author
"(c) 2015- ShiroYuki_Mot" ;copyright notice
"2015/01/03" ;date created
"" ;image type on the script
SF-ADJUSTMENT "SF-ADJUSTMENT 0" '(256 1 1024 1 10 0 0) ;0:Slider
SF-ADJUSTMENT "SF-ADJUSTMENT 1" '(256 1 1024 1 10 0 1) ;1:Spinner
SF-BRUSH "SF-BRUSH" '("Circle (15)" 1.0 20 0)
SF-CHANNEL "SF-CHANNEL" 0
SF-COLOR "SF-COLOR" '(255 255 255)
SF-DIRNAME "SF-DIRNAME" ""
SF-DRAWABLE "SF-DRAWABLE" 0
SF-FILENAME "SF-FILENAME" ""
SF-FONT "SF-FONT" "Sans"
SF-GRADIENT "SF-GRADIENT" "Blue Green"
SF-IMAGE "SF-IMAGE" 0
SF-LAYER "SF-LAYER" 0
SF-OPTION "SF-OPTION" '("Option1" "Option2" "Option3")
SF-PALETTE "SF-PALETTE" ""
SF-PATTERN "SF-PATTERN" "Pine"
SF-STRING "SF-STRING:\nNewLineSample" "The Gimp"
SF-TOGGLE "SF-TOGGLE" FALSE
SF-VALUE "SF-VALUE" "10"
)
コードのブラウザ表示上では、 ¥ が \ になってしまいますが、エディタ上に CopyPaste すれば、元の ¥ に戻ると思います。
薄いグレーの部分は、メッセージボックスとして表示したかったのですが、駄目でした。 除外して下さい。.
何方か、方法をご存知でしたら、お教え下さい。.
実際に、ご自分で Script-Fu を書いて行く場合には、
この中の各要素を、適宜、組み合わせて行く事になります。
尚、Script-Fu は、そのベースとなる GIMP のバージョンによって、記述や変数の初期値に違いがあります。
ソースコードのコピペですと、思わぬ泥沼かもです。 注意しましょう。
今回の例は GIMP 2.6.11 で試しています。
GIMP 2.4 以前のものは、メニュー位置( ;menu label)の指定が違っているものが多いですね。.
主要な各要素項目の詳細を はじめての Script-Fu スクリプト GIMP マニュアル から引用して、転記しておきます。 参考用に。
パラメーターの型 | 説明 | 例 |
---|---|---|
SF-IMAGE |
既に開いてある画像を操作するためのスクリプトを作るときは、 必須のパラメーターの直後にこのパラメーターを置かねばなりません。 GIMP は画像を参照するための情報をこのパラメーターに乗せてスクリプトに渡します。 | 3 |
SF-DRAWABLE |
既に開いてある画像を操作するためのスクリプトを作るときは、 SF-IMAGE 型のパラメーターのつぎにこのパラメーターを置かなくてはなりません。 これは活性レイヤーを参照します。 GIMP は活性レイヤーを参照するための情報をこのパラメーターに乗せてスクリプトに渡します。 |
17 |
SF-VALUE |
数値と文字列の両方を受け入れる型です。 初期設定のテキストを渡すとき引用符をエスケープ処理しなければならなくなるので、 文字列には SF-STRING 型の方が適しています。 |
42 |
SF-STRING |
文字列を収める変数です。 | "Some text" |
SF-COLOR |
このパラメーターが要求する色の情報を示します。 | '(0 102 255) |
SF-TOGGLE |
真理 2 値をとるチェックボックスを表示します。 | 有効なら TRUE、 無効なら FALSE |
パラメーターの型 | 説明 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
SF-ADJUSTMENT |
ダイアログ上に値を調節するためのウィジェットを作成します。
ウィジェット変数表
|
||||||||||||||||
SF-COLOR |
ダイアログにカラーボタンを作成します。もしくは
ウィジェット変数表
|
||||||||||||||||
SF-FONT |
ダイアログにフォント選択ウィジェットを作成します。 フォント名を文字列変数形式で返します。
GIMP にはこの返し値を手軽に扱えるテキスト処理プロシージャーが 2 つ備わっています。
いずれも
fontname に得られたフォント名を入れます。 フォントの大きさには有益な値を設定しておくと良いでしょう。 24 ピクセルがおすすめです。
ウィジェット変数表
|
||||||||||||||||
SF-BRUSH |
ダイアログにブラシ選択ウィジェットを作成します。 このウィジェットは縮小見本表示があります。 ここはクリックしたまま待つと大きく表示されます。 さらに
ウィジェット変数表
SF-BRUSH "Brush" '("2. Hardness 075" 100 44 0) 」として呼び出してダイアログで何も変更しなかった場合、 返ってくるパラメーターは「'("2. Hardness 075" 100 44 0) 」となります。 |
のラベルがついたボタンが作られます。 このボタンをクリックするとブラシ選択ダイアログが開かれ、 ブラシを選んだりその特徴を変更できるしくみになっています。||||||||||||||||
SF-PATTERN |
ダイアログにパターン選択ウィジェットを作成します。 このウィジェットは縮小見本表示があります。 ここはクリックしたまま待つと大きく表示されます。 さらに
ウィジェット変数表
"Maple Leaves" 」となります。 |
のラベルがついたボタンが作られます。 このボタンをクリックするとパターン選択ダイアログが開かれ、 パターンを選んだりその特徴を変更できるしくみになっています。||||||||||||||||
SF-GRADIENT |
ダイアログにグラデーション選択ウィジェットを作成します。 グラデーションボタンが設置され現在選ばれているグラデーションが表示されます。 このボタンはクリックするとグラデーション変更ダイアログが開かれ他のグラデーションも選べるしくみになっています。
ウィジェット変数表
SF-GRADIENT "Gradient" "Deep Sea" 」として呼び出してダイアログで何も変更しなかった場合、 返ってくるパラメーターは「"Deep Sea" 」となります。 |
||||||||||||||||
SF-PALETTE |
ダイアログにパレット選択ウィジェットを作成します。 このウィジェットは縮小見本とパレット名を表示します。 縮小見本はボタンになっておりクリックするとパレット選択ダイアログが開かれ他のパレットも選べるしくみになっています。
ウィジェット変数表
SF-PALETTE "Palette" "Named Colors" 」として呼び出してダイアログで何も変更しなかった場合、 返ってくるパラメーターは「"Named Colors" 」となります。 |
||||||||||||||||
SF-FILENAME |
ダイアログにファイル選択ウィジェットを作成します。 ファイル名が記されたボタンが設置されます。 このボタンをクリックするとファイルブラウザーが開かれ、 ファイルを探してひとつ選ぶ操作ができるしくみになっています。
ウィジェット変数表
|
||||||||||||||||
SF-DIRNAME |
対話式操作でのみ有益です。 ファイルではなくディレクトリーを選択するウィジェットであることのほかは SF-FILENAME と酷似しています。
ウィジェット変数表
|
||||||||||||||||
SF-OPTION |
ダイアログに数々の選択肢からひとつを選ぶコンボボックスウィジェットを作成します。 選択肢はまとめてリストにして渡し、 ウィジェットは最初の項目を初期値として表示します。
ウィジェット変数表
|
||||||||||||||||
SF-ENUM |
ダイアログに列挙型リストの選択ウィジェットを作成します。 指定された列挙型の項目を並べたコンボボックスが設けられます。 使える列挙型は登録済のものに限られ、 その名前から冒頭の「Gimp」を取り除いた語で指定します。 第 2 のパラメーターには初期設定値を、 その略称で指定します。
ウィジェット変数表
|
.
0 件のコメント:
コメントを投稿