Gimp2.6


スクリプトについてのランダムメモ

ランダムメモへ戻る

スクリプト関数登録 - script-fu-register -

 作成した関数を実際に使えるようにシステムに登録するのがscript-fu-registerです。 固定のパラメータと、それから、作成した関数の引数を指定します。
 関数の実行前にはダイアログをシステムが表示し、その内容を作成した関数に渡してくれます。ダイアログに何を表示するか、すなわち、ダイアログから何を受け取るかを、ここで指定することができ、これは、関数の引数に書いておくべきものになります。
 登録するスクリプト関数は、独立型のものと、画像依存のものに分けられます。画像依存のスクリプト関数は、Gimp上で開かれている画像を処理するもので、引数の最初に、IMAGE と DRAWABLEの二つの引数が置かれます。

 まず、固定部分の引数を書き出します。

名称概略
funcnamestring 関数名。たとえば、関数名が myproc ならば、文字列として "myproc" と書きます。
menulabelstring メニュー表示名。メニューに表示するラベルを指定します。
書き方は二つあります。
  1. 表示ラベルだけを書く

     たとえば、"Distortion" と書きます。この場合は、メニュー登録される位置を指定するために scriput-fu-menu-register 関数を使う必要があります。

  2. メニューパスをつけて書く

     たとえば、"<Image>/Sampodo/Application/Distortion"のように書きます。最後の"Distortion"がメニューの表示ラベルです。
    "<Image>/Sampodo/Application/" がメニューのパスを表し、「メニュー」→「Sampodo」→「Application」と操作すると、"Distortion"を見つけることができます。

descriptionstring 説明書き。ツールチップで表示される内容説明です。
authorstring 作者
copyrightstring 著作権者
date_createdstring 作成日付
imagetypestring

 イメージのタイプ。このスクリプト関数が取り扱うイメージのタイプを指定します。
たぶん、画像依存のスクリプト関数だけに有効だと思います。
画像タイプを半角スペースで区切って列挙します。任意の画像タイプを扱える場合には"*"と指定します。

表記説明
RGBRGB画像
RGBAアルファチャンネルつきRGB画像
RGB*RGBとRGBA
GRAYグレースケール画像
GRAYAアルファチャンネルつきグレースケール画像
GRAY*GRAYとGRAYA
INDEXEDインデックス画像
INDEXEDAアルファチャンネルつきインデックス画像
INDEXED*INDEXEDとINDEXEDA
*すべての種類の画像

 次のように組み合わせて指定できます。

"RGB* GRAY* INDEXED*"
"RGB* GRAY*"
"RGBA GRAYA INDEXEDA"
"RGB GRAY"
"RGBA GRAYA"

 スクリプト関数に引き継がれる引数は、指標 指標への定数ならび の形で繰り返して書きます。指標は、「SF-」で始まるシンボルです。
 画像依存のスクリプト関数では、固定の部分の後ろに、SF-IMAGE、SF-DRAWABLE の順で書きます。(関数の引数の最初の二つは IMAGE と DRAWABLEになります)

0SF-IMAGE

 画像依存のスクリプト関数では、この記述が必須です。現在のアクティブなイメージを示します。
パラメータは文字列、数値を書きますが、意味は無いようです。次のように書きます。

SF-IMAGE "Image" 0
1SF-DRAWABLE

 画像依存のスクリプト関数では、この記述が必須です。現在のアクティブなドローワブルを示します。
ドローワブルは、レイヤーやチャンネルなど描画対象のことです。
パラメータは文字列、数値を書きますが、意味は無いようです。次のように書きます。

SF-DRAWABLE "Drawable" 0
5SF-COLOR

 ダイアログにカラーボタンを作成します。関数の相当する引数には、カラーの値が与えられます。
パラメータは、ダイアログに表示するラベル文字列、カラーの初期値を与えます。
 次のように書きます

SF-COLOR _"Start Color:" '(255 0 255)

Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"Background Color"
Initial Value カラーボタンの初期値です。三つの要素(R G B) からなるリストを与えます。値の範囲は 0-255 です。

例:
'(255 128 100)
6SF-TOGGLE

 二値スイッチ(チェックボックス)をダイアログに表示し、その結果を関数の相当する引数に与えます。
パラメータは、ダイアログに表示するラベル文字列、スイッチの初期値(0/1)を与えます。
関数に与えられる値は、 0: オフ、1: オン です。
 次のように書きます

SF-TOGGLE _"Use Table" TRUE

Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"Power Switch"
Initial Value スイッチの初期値です。1か、0 の数値を与えます。TRUE(=1)、FALSE(=0)が定義済みなのでこれを使うとわかりやすいでしょう。

例:
TRUE
FALSE
7SF-VALUE

 Schemeの式を入力する項目をダイアログに追加し、その評価値を関数の相当する引数に与えます。
入力した値がSchemeの式として評価されるので、リストなど入力できて便利ですが、一般のユーザーはSchemeを知らないはずなので、公開目的ならば使用しない方が良いと思います。
 パラメータは、ラベル文字列、初期値文字列の順で次のように書きます。

SF-VALUE _"Scheme:" "150"
ここで、(list 1 2 3)と入力すると、スクリプト関数には、'(1 2 3) が与えられる。
Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"Eval Expr:"
Initial Value

入力項目の初期値です。この文字列の値が初期値として表示されます。

"123" ← 「123」(数値)が初期値
"abc"  ← 「abc」(シンボル)が初期値
"\x22start\x22" ← 「"abc"」(文字列)が初期値。
8SF-STRING

 文字列入力ボックスをダイアログに追加し、その値を関数の引数に与えます。
 入力した値がそのまま文字列の値となるので、文字列入力が必要な場合は、通常はこの処理を利用します。
 パラメータはラベル文字列と、初期値文字列です。次のように書きます。

SF-STRING "YourName:" "algo sampodo"

Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"YourName"
Initial Value

入力項目の初期値です。この文字列の値が初期値として表示されます。

"123" ← "123"(文字列)が初期値
"abc"  ← "abc"(文字列)が初期値
9SF-ADJUSTMENT

 数値入力項目をダイアログに追加し、その数値をスクリプト関数の相当する引数に与えます。
入力項目は、スライダーとスピンボックスの二つの形状を選べます。
パラメータの第一項目がラベル文字列、第二項目に細かいパラメータ数値をリストにして与えます。
次のように書きます。

SF-ADJUSTMENT	_"Length" '(30  0 256 1 10 1 1)

Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"YourName"
Param

各パラメータをリスト形式で指定します。すべて数値で7項目あります。

value初期値
lower最小値
upper最大値
step-inc最小増分
page-incPageUp/PageDownなど大きく動かすときの増分
digit小数点以下の桁数
type形状:スライダーは 0、スピンボックスは 1を指定する。
10SF-FONT

 フォントを選択する項目をダイアログに追加して、その値をスクリプト関数の相当する引数に返します。
返される値はフォント名を表す文字列です。

パラメータは、ラベル、フォント名の初期値(文字列)で次のように書きます。

SF-FONT _"Select Font:" "Sans"

Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"Font:"
Fontname

デフォルトで与えるフォント名です。文字列です。

11SF-PATTERN  パターンを選択する項目をダイアログに追加し、スクリプト関数の相当する引数にパターン名称を割り当てます。 パラメータは、ラベル文字列、パターン名の初期値の順で次のように書きます。
SF-Pattern: _"Pattern:" "Electric Blue"

Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"Font:"
Pattern-name

デフォルトで与えるパターン名です。文字列です。
最初に組み込まれているパターンの名称は次のとおりです。

"3D Green""Amethyst""Big Blue""Blue Grid"
"Blue Squares""Blue Web""Bricks""Burlap"
"Burlwood""Chocolate Swirl""Cork board""Crack"
"Craters""Crinkled Paper""Dried mud""Electric Blue"
"Fibers""Granite #1""Ice""Java"
"Leather""Leopard""Lightning""Maple Leaves"
"Marble #1""Marble #2""Marble #3""Nops"
"One Small Step...""Paper""Parque #1""Parque #2"
"Parque #3""Pastel Stuff""Pine""Pine?"
"Pink Marble""Pool Bottom""Qbert""Rain"
"recessed""Red Cubes""Rocks""Sky"
"Slate""Small Squares""Starfield""Stone"
"Stripes""Stripes Fine""Terra""Tree Bark"
"Walnut""Warning!""Wood""Wood #1"
"Wood #2""Wood of some sort"
12SF-BRUSH

 ブラシ選択をダイアログに追加し、選択の結果をスクリプト関数の相当する引数に返します。
パラメータはラベル文字列、ブラシの初期値の順で書きます。
引数に返される値、および、初期値は、リストの形式(ブラシ名 opacity interval mode)になっています。

SF-BRUSH _"Brush"         '("Circle (01)" 1.0 1.0 0)

Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"Font:"
Param

 ブラシ記述です。関数に返されるのもこの形式です。
< リストの形で、ブラシ名 opacity interval mode の順に並びます。

brushstringブラシの名称。デフォルトで組み込まれているブラシは次のとおり。
"animated Confetti""Calligraphic Brush"
"Calligraphic Brush#1" "Calligraphic Brush#2"
"Calligraphic Brush#3""Circle (01)"
"Circle (03)""Circle (05)"
"Circle (07)""Circle (09)"
"Circle (11)""Circle (13)"
"Circle (15)""Circle (17)"
"Circle (19)""Circle Fuzzy (03)"
"Circle Fuzzy (05)""Circle Fuzzy (07)"
"Circle Fuzzy (09)""Circle Fuzzy (11)"
"Circle Fuzzy (13)""Circle Fuzzy (15)"
"Circle Fuzzy (17)""Circle Fuzzy (19)"
"Confetti""Diagonal Star (11)"
"Diagonal Star (17)""Diagonal Star (25)"
"Felt Pen" "Galaxy (AP)""Galaxy, Big"
"Galaxy, Small (AP)""Pencil Sketch"
"Pencil Sketch#1""Pencil Sketch#2"
"Pepper""pixel (1x1 square)"
"Sand Dunes (AP)""Sparks"
"square (10x10)""square (10x10) blur"
"square (20x20)""square (20x20) blur"
"square (5x5)""square (5x5) blur"
"Vine"
opacitynumber不透明率(0.0〜100.0)
intervalnumberブラシ間隔。ブラシの高さに対する%。(1.0〜200.0)
modenumber描画モードを指定します。
0NORMAL-MODE標準
1DISSOLVE-MODEディザ合成
2BEHIND-MODE後ろ
3MULTIPLY-MODE乗算
4SCREEN-MODEスクリーン
5OVERLAY-MODEオーバーレイ
6DIFFERENCE-MODE差の絶対値
7ADDITION-MODE加算
8SUBTRACT-MODE減算
9DARKEN-ONLY-MODE比較(暗)
10LIGHTEN-ONLY-MODE比較(明)
11HUE-MODE色相
12SATURATION-MODE彩度
13COLOR-MODE
14VALUE-MODE明度
15DIVIDE-MODE除算
16DODGE-MODE覆い焼き
17BURN-MODE焼き込み
18HARDLIGHT-MODEハードライト
19SOFTLIGHT-MODEソフトライト
20GRAIN-EXTRACT-MODE微粒取り出し
21GRAIN-MERGE-MODE微粒結合
22COLOR-ERASE-MODE色消しゴム
13SF-GRADIENT

 グラデーション選択項目をダイアログに追加し、スクリプト関数の相当する引数にグラデーション名(文字列)割り当てます。
 パラメータは、ラベル文字列、初期グラデーション名の順で、次のように書きます。

SF-GRADIENT _"Gradient:" "Browns"

Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"Gradient:"
Gradient-name

デフォルトで与えるグラデーション名です。文字列です。
最初に組み込まれているグラデーションの名称は次のとおりです。

"描画色から透明"
"描画色から背景色 (HSV 時計回り)"
"描画色から背景色 (HSV 反時計回り)""描画色から背景色 (RGB)"
"Abstract 1""Abstract 2""Abstract 3"
"Aneurism""Blinds""Blue Green"
"Browns""Brushed Aluminium""Burning Paper"
"Burning Transparency""Caribbean Blues""CD"
"CD Half""Coffee""Cold Steel"
"Cold Steel 2""Crown molding""Dark 1"
"Deep Sea""Default""Flare Glow Angular 1"
"Flare Glow Radial 1""Flare Glow Radial 2""Flare Glow Radial 3"
"Flare Glow Radial 4""Flare Radial 101""Flare Radial 102"
"Flare Radial 103""Flare Rays Radial 1""Flare Rays Radial 2"
"Flare Rays Size 1""Flare Sizefac 101""Four bars"
"French flag""French flag smooth""Full saturation spectrum CCW"
"Full saturation spectrum CW""German flag""German flag smooth"
"Golden""Greens""Horizon 1"
"Horizon 2""Incandescent""Land 1"
"Land and Sea""Metallic Something""Mexican flag"
"Mexican flag smooth""Nauseating Headache""Neon Cyan"
"Neon Green""Neon Yellow""Pastel Rainbow"
"Pastels" "Purples""Radial Eyeball Blue""Radial Eyeball Brown"
"Radial Eyeball Green""Radial Glow 1""Radial Rainbow Hoop"
"Romanian flag""Romanian flag smooth""Rounded edge"
"Shadows 1""Shadows 2""Shadows 3"
"Skyline""Skyline polluted""Square Wood Frame"
"Sunrise""Three bars sin""Tropical Colors"
"Tube Red""Wood 1""Wood 2"
"Yellow Contrast""Yellow Orange"
14SF-FILENAME

 ファイル名入力項目をダイアログに追加し、ファイル名をスクリプト関数の対応する引数に割り当てます。
 パラメータは、ラベル文字列、初期ファイル名の順で次のように書きます。

SF-FILENAME _"SrcFilename" "e:\\00temp\\test.jpg"

Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"SrcFileName"
filename

ファイル名の初期値です。

15SF-DIRNAME

 ディレクトリ名入力項目をダイアログに追加し、ディレクトリ名をスクリプト関数の対応する引数に割り当てます。
 パラメータは、ラベル文字列、初期ディレクトリ名の順で次のように書きます。

SF-FILENAME _"SrcDirectory" "e:\\00temp\\mydata"

Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"DirName"
dirname

ディレクトリ名の初期値です

16SF-OPTION  複数の選択肢からひとつを選ぶ項目をダイアログに追加して、選択結果をスクリプト関数の対応する引数に渡します。
 選択結果は、選ばれたオプションの番号です(先頭が0)。
 パラメータは、ラベル文字列、オプションのリスト(各要素は文字列)の順で次のように書きます。

SF-OPTION _"City" '("Tokyo" "Ohsaka" "Nagoya")

 この例で、Ohsaka を選ぶと数値 1 が引数に与えられます。


Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"SelectIt:"
options

選択肢を表す文字列からなるリストです。要素の数は2つ以上、任意に書けます。

17SF-PALETTE

 パレット選択をする項目をダイアログに追加し、選択結果をスクリプト関数の対応する引数に渡します。
引数に渡されるのは、パレット名を表す文字列です。
 パラメータは、ラベル文字列、パレット名初期値文字列の順で次のように書きます。

SF-PALETTE _"Palette" "Default"

Label

ダイアログに表示するラベル文字列。先頭にアンダーラインをつけて書かれます。

例:
_"New Palette:"
palette-name

文字列。パレットの名称です。
 デフォルトで組み込まれているのパレットは次のとおりです。

"Bears""Bgold""Blues""Borders"
"Browns And Yellows""Caramel""Cascade""China"
"Coldfire""Cool Colors""Cranes"
"Dark pastels"
"Default""Ega""Firecode""Gold"
"Grayblue""Grays""GrayViolet""Greens"
"Hilite""Khaki""Lights""Muted"
"Named Colors""News3""Op2""Paintjet"
"Pastels""Plasma""Reds""Reds And Purples"
"Royal""Tango Icon Theme""Topographic""Visibone"
"Visibone 2""Volcano""Warm Colors""Web"
19SF-ENUM

 ダイアログに列挙型リストの選択項目をダイアログに追加し、スクリプト関数の引数にに選択した番号を割り当てます。
列挙型は登録済のものに限られ、その名前の先頭の「Gimp」を取り除いた文字列で指定します。
パラメータは、文字列ラベルと、列挙型名文字列、初期値文字列のリストで次のように書きます。

(SF-ENUM _"IntePolation" '("InterpolationType" "linear")

 現状では上記のInterpolationType以外の登録がわからないので、使えないでいます。

type of interpolation 
INTERPOLATION-NONE (0)
INTERPOLATION-LINEAR (1)
INTERPOLATION-CUBIC (2)
INTERPOLATION-LANCZOS (3) }

ランダムメモへ戻る


アルゴ算法堂へ戻る