トップ > Script-Fuスクリプトの制作 >
Script-Fuプログラミングの基礎を学ぶ(バージョン 3)

  
  
この記事はGIMP 3.0系のScript-Fu バージョン 3向けの記事です。 GIMP 2.10系を利用している方は、Script-Fu バージョン 2 / 3 共通の記事まで読み飛ばしてください。 または、SCript-Fu バージョン 2向けの記事まで戻ってください。

Script-Fuプログラミングの基礎

前の記事までは、プログラミング言語Schemeに関する知識を主に解説してきました。 ここからは、Script-Fuプログラミングに関する内容について解説していきます。 GIMP専用の手続き(関数)についての解説が主になります。

ここまではGIMP専用の手続きといえば、

  1. gimp-quit
  2. gimp-message
  3. script-fu-register-procedure
  4. script-fu-menu-register

ぐらいしか紹介していません。 ここからは、その他のGIMP専用の手続きについて紹介していきます

最初に知るべき大切なこと

GIMP専用の手続きを利用する上で、絶対に知っておかなければならない大切なことがあります。 GIMP専用の手続きには結果を返すものと返さないものがありますが、結果を返すGIMP専用の手続きは必ずリストで結果を返す、ということです。

返される結果のデータが1件の場合も複数件の場合も必ずリストで返されます。

つまり、GIMP専用の手続きから返されたデータを参照するには、手続き car・cadrなどを利用する必要がある、ということです。

  
手続きから返される結果の値のことを 戻り値(もどりち) もどりち 戻り値(もどりち) といいます。 以降は "戻り値" と表記します。

開いている画像にアクセスするなら手続き script-fu-register-filterを使わなくてはならない

知らなければならないことは他にもあります。 それは、開いている画像にアクセスするスクリプトは手続き script-fu-register-procedureではなく手続き script-fu-register-filterで登録する必要がある、ということです。

手続き 機能
script-fu-register-procedure 開いている画像にアクセスしないScript-Fuスクリプトを登録する
script-fu-register-filter 開いている画像にアクセスするScript-Fuスクリプトを登録する

画像の幅と高さを取得する

ではここで、新たな手続き gimp-image-get-width と gimp-image-get-height について紹介します。

手続き 機能
gimp-image-get-width 画像の幅を返す
※キャンバスの幅のこと
gimp-image-get-height 画像の高さを返す
※キャンバスの高さのこと

これらの手続きを利用し、開いている画像の幅と高さを取得して表示するスクリプトを作成してみましょう。 スクリプトファイル myscript.scm を以下のように書き換えます。

  1. (define (myscript image layers)
  2. (let
  3. (
  4. (image-width 0)
  5. (image-height 0)
  6. )

  7. (set! image-width (car (gimp-image-get-width image)))
  8. (set! image-height (car (gimp-image-get-height image)))

  9. (gimp-message (string-append "Width is " (number->string image-width) " / Height is " (number->string image-height)))
  10. )
  11. )

  12. (script-fu-register-filter
  13. "myscript" ; 登録する関数の名前
  14. "My Script" ; メニュー項目のラベル
  15. "自作の練習用スクリプトです" ; メニュー項目の説明
  16. "My Name" ; 作成者の名前
  17. "My Name" ; 著作権に関する表示
  18. "January 1, 2023" ; 作成日(改訂日)
  19. "RGB* GRAY*" ; メニュー項目を有効にするためのカラーモードの条件
  20. SF-ONE-DRAWABLE ; メニュー項目を有効にするためのレイヤ選択の条件
  21. )

  22. (script-fu-menu-register
  23. "myscript" ; 対象の関数の名前
  24. "<Image>/Filters" ; メニュー項目の位置
  25. )
 

では、このスクリプトを試してみましょう。

1. 任意の大きさの画像を開く
1. 任意の大きさの画像を開く

上図のように任意の大きさの画像を開きます。 今回は320 x 200の新規画像を作成しました。

では、スクリプトを実行しましょう。 プルダウンメニューの"フィルター(R) -> My Script"を実行します。

2. ウィンドウ下部に "Width is 320 / Height is 200" と表示される
2. ウィンドウ下部に "Width is 320 / Height is 200" と表示される

上図のようにウィンドウ下部に "Width is 320 / Height is 200" と表示されます。 目指していた通りに、画像の幅と高さを表示させることができました。


では、スクリプトの内容を詳しく見てみましょう。 最初に注目すべきは15行目の、

(script-fu-register-filter

という部分です。 このスクリプトは開いている画像にアクセスしますので、手続き script-fu-register-filterを利用しています。

次に注目すべきは20行目の、

"My Name"                                                        ; 著作権に関する表示

と、22・23行目の、

"RGB* GRAY*"                                                     ; メニュー項目を有効にするためのカラーモードの条件
SF-ONE-DRAWABLE                                                  ; メニュー項目を有効にするためのレイヤ選択の条件

という部分です。 手続き script-fu-register-filterの引数は、これまで利用していた手続き script-fu-register-procedureと比べて大幅に増えています

では、増えた引数について解説します。 まず、

"My Name"                                                        ; 著作権に関する表示

の部分ですが、ここには著作権に関する表示のための引数を渡します。 1つ前の引数である『作成者の名前』と同じものを渡せばいいと思います。

続いての、

"RGB* GRAY*"                                                     ; メニュー項目を有効にするためのカラーモードの条件

という引数にはメニュー項目を有効にするためのカラーモードの条件を記述します

今回は "RGB*" と "GRAY*" と記述されていますが、この記述だとカラーモードがRGB形式かグレースケール形式の場合のみメニュー項目が有効になります。 つまり、画像を開いていない状態だとメニュー項目を選択することができなくなります。

  
カラーモードの詳細については、知っておきたい機能 > 全般 > カラーモード(色の形式)を参照ください。

さらに次の行の、

SF-ONE-DRAWABLE                                                  ; メニュー項目を有効にするためのレイヤ選択の条件

の部分ですが、ここにはメニュー項目を有効にするためのレイヤ選択の条件を記述します

引数 意味
SF-ONE-DRAWABLE 選択中のレイヤ数が1枚の場合のみ有効となる
SF-ONE-OR-MORE-DRAWABLE 選択中のレイヤ数が1枚以上の場合のみ有効となる
SF-TWO-OR-MORE-DRAWABLE 選択中のレイヤ数が2枚以上の場合のみ有効となる

長くなってきましたので、以下にスクリプトを再掲載します。 内容は最初に掲載したものと同じです。

  1. (define (myscript image layers)
  2. (let
  3. (
  4. (image-width 0)
  5. (image-height 0)
  6. )

  7. (set! image-width (car (gimp-image-get-width image)))
  8. (set! image-height (car (gimp-image-get-height image)))

  9. (gimp-message (string-append "Width is " (number->string image-width) " / Height is " (number->string image-height)))
  10. )
  11. )

  12. (script-fu-register-filter
  13. "myscript" ; 登録する関数の名前
  14. "My Script" ; メニュー項目のラベル
  15. "自作の練習用スクリプトです" ; メニュー項目の説明
  16. "My Name" ; 作成者の名前
  17. "My Name" ; 著作権に関する表示
  18. "January 1, 2023" ; 作成日(改訂日)
  19. "RGB* GRAY*" ; メニュー項目を有効にするためのカラーモードの条件
  20. SF-ONE-DRAWABLE ; メニュー項目を有効にするためのレイヤ選択の条件
  21. )

  22. (script-fu-menu-register
  23. "myscript" ; 対象の関数の名前
  24. "<Image>/Filters" ; メニュー項目の位置
  25. )

続いて注目すべきは、1行目の、

(define (myscript image layers)

という部分です。 関数の名前である myscript の後ろに image と layers という記述があります。 この記述は『image と layers という名前で2つの引数を受け取る』ことを意味しています。

この2つの引数は、手続き script-fu-register-filterで登録した関数であれば必ず受け取らなければなりません

引数 image には画像番号が、layers には選択中のレイヤ番号(ベクタ)が渡ってきます。

続いては、4・5行目に注目してみましょう。 4・5行目では、

(image-width  0)
(image-height 0)

と、2つの変数を宣言しています。 この2つの変数には後ほど取得する画像の幅と高さを格納します。

最後の注目点が肝心の8・9行目の、

(set! image-width  (car (gimp-image-get-width image)))
(set! image-height (car (gimp-image-get-height image)))

の2行です。 この2行が画像の幅と高さを取得している部分です。

手続き gimp-image-get-width と gimp-image-get-height には、引数として画像番号を渡す必要があります。 受け取った引数 imageが画像番号ですので、引数 imageをそのまま渡しています。

手続き gimp-image-get-width と gimp-image-get-height から返された結果は、手続き carを使って取り出し、変数 image-width と image-height に格納しています。

すでに説明したように、GIMP関連の手続きは戻り値が1件の場合も複数件の場合も必ずリストで返します。 よって、手続き carが必要というわけです。

画像の大きさが320 x 200の場合だと仮定すると、手続き gimp-image-get-width から返された戻り値を入れ子のコンスセルで表現すると、

320
<空っぽ>

となり、手続き gimp-image-get-height から返された戻り値は、

200
<空っぽ>

となります。 手続き carを利用しなければ、320 や 200 を取り出すことはできません。


ではここで、手続き gimp-image-get-widthの仕様を確認しておきましょう。 引数をいくつ受け取るのか、引数には何を渡すのか、戻り値はいくつで何が返されるのかなどを確認します。

Script-Fu プロシージャブラウザーから確認します。 Script-Fu プロシージャブラウザーの開き方については以前のこの記事で解説しています。

3. 手続き gimp-image-get-widthの詳細が表示される
3. 手続き gimp-image-get-widthの詳細が表示される

上図のようにScript-Fu プロシージャブラウザーを開き、gimp-image-get-widthを検索します。 この詳細からわかる内容は以下の通りです。

手続きの名前 gimp-image-get-width
手続きの機能

画像の幅を返す。

引数の数 1つ
1つ目の引数の名前
1つ目の引数の種別
1つ目の引数の意味
image
GimpImage
画像番号
戻り値の数 1つ
戻り値の名前
戻り値の種別
戻り値の意味
width
gint
画像の幅

1つ目の引数の種別が GimpImage となっていますが、これが画像番号のことです。 また、戻り値の種別が gint となっていますが、これは数値(Integer:整数)のことです

引数や戻り値の種別(データ型) 意味
GimpImage 画像番号
gint 数値(整数)

レイヤ番号の一覧とレイヤの名称を取得する

では次に、新たな手続き gimp-image-get-layers と gimp-item-get-name について紹介します。

手続き 機能
gimp-image-get-layers レイヤ番号の一覧を返す
gimp-item-get-name レイヤ番号に対するレイヤ名称を返す

これらの手続きを利用し、開いている画像のレイヤの名称を列挙するスクリプトを作成してみましょう。 スクリプトファイル myscript.scm を以下のように書き換えます。

  1. (define (myscript image layers)
  2. (let
  3. (
  4. (layer-array 0)
  5. (layer-count 0)
  6. (layer-index 0)
  7. (layer-id 0)
  8. (layer-name "")
  9. (message "")
  10. )

  11. (set! layer-array (car (gimp-image-get-layers image)))
  12. (set! layer-count (vector-length (car (gimp-image-get-layers image))))

  13. (set! message (string-append "Layer Name is "))

  14. (while (< layer-index layer-count)
  15. (set! layer-id (vector-ref layer-array layer-index))

  16. (set! layer-name (car (gimp-item-get-name layer-id)))

  17. (if (> layer-index 0)
  18. (begin
  19. (set! message (string-append message " / "))
  20. )
  21. )

  22. (set! message (string-append message layer-name))

  23. (set! layer-index (+ layer-index 1))
  24. )

  25. (gimp-message message)
  26. )
  27. )

  28. (script-fu-register-filter
  29. "myscript" ; 登録する関数の名前
  30. "My Script" ; メニュー項目のラベル
  31. "自作の練習用スクリプトです" ; メニュー項目の説明
  32. "My Name" ; 作成者の名前
  33. "My Name" ; 著作権に関する表示
  34. "January 1, 2023" ; 作成日(改訂日)
  35. "RGB* GRAY*" ; メニュー項目を有効にするためのカラーモードの条件
  36. SF-ONE-DRAWABLE ; メニュー項目を有効にするためのレイヤ選択の条件
  37. )

  38. (script-fu-menu-register
  39. "myscript" ; 対象の関数の名前
  40. "<Image>/Filters" ; メニュー項目の位置
  41. )
 

では、このスクリプトを試してみましょう。

1. 複数のレイヤを持つ画像を開く
1. 複数のレイヤを持つ画像を開く

上図のように複数のレイヤを持つ画像を開きます。 今回は上から "太陽" / "雲" / "青空" の3枚のレイヤを持つ画像です。

では、スクリプトを実行しましょう。 プルダウンメニューの"フィルター(R) -> My Script"を実行します。

2. ウィンドウ下部に "Layer Name is 太陽 / 雲 / 青空" と表示される
2. ウィンドウ下部に "Layer Name is 太陽 / 雲 / 青空" と表示される

上図のようにウィンドウ下部に "Layer Name is 太陽 / 雲 / 青空" と表示されます。 目指していた通りに、レイヤの名称を列挙することができました。


スクリプトの中身を解説する前に、手続き gimp-image-get-layersの仕様を確認しておきましょう。 Script-Fu プロシージャブラウザーから確認します。

3. 手続き gimp-image-get-layersの詳細が表示される
3. 手続き gimp-image-get-layersの詳細が表示される

上図のようにScript-Fu プロシージャブラウザーを開き、gimp-image-get-layersを検索します。 この詳細からわかる内容は以下の通りです。

手続きの名前 gimp-image-get-layers
手続きの機能

レイヤ番号の一覧を返す。

引数の数 1つ
1つ目の引数の名前
1つ目の引数の種別
1つ目の引数の意味
image
GimpImage
画像番号
戻り値の数 2つ
戻り値の名前
戻り値の種別
戻り値の意味
layers
GimpCoreObjectArray
レイヤ番号の一覧

戻り値の種別が GimpCoreObjectArray となっていますが、これはレイヤ番号(またはチャンネル番号やパス番号)のベクタのことです。 なお、引数や戻り値の種別が xxxxArray となっていても、それが必ずベクタであるとは限りません。 リストの場合もあります。

引数や戻り値の種別(データ型) 意味
GimpCoreObjectArray レイヤ番号(またはチャンネル番号やパス番号)のベクタ

説明には "The list of layers..." と書かれていますが、ここでの "list" とは "一覧" という意味のリストであり、プログラミング言語Schemeのリスト(コンスセルがつながったもの)のことではありません

なお、(しつこいようですが)、GIMP関連の手続きは戻り値をリストで返します。 この手続きが返す GimpCoreObjectArrayのlayers もリストの要素として返されます

例えば、3枚のレイヤを持つ画像で、レイヤ番号が 1・2・8 の場合は、この手続きからの戻り値は、

1) 1
2) 2
3) 8
<空っぽ>

となります。

従って、手続き carを使うことで、

1) 1
2) 2
3) 8

というレイヤ番号のベクタを取り出すことができます。 取り出したベクタの中のそれぞれの情報を取り出すには、過去の記事で紹介した手続き vector-refを使います


では、スクリプトの中身を見ていきましょう。 寄り道が長くなったので、以下にスクリプトを再掲載します。 内容は最初に掲載したものと同じです。

  1. (define (myscript image layers)
  2. (let
  3. (
  4. (layer-array 0)
  5. (layer-count 0)
  6. (layer-index 0)
  7. (layer-id 0)
  8. (layer-name "")
  9. (message "")
  10. )

  11. (set! layer-array (car (gimp-image-get-layers image)))
  12. (set! layer-count (vector-length (car (gimp-image-get-layers image))))

  13. (set! message (string-append "Layer Name is "))

  14. (while (< layer-index layer-count)
  15. (set! layer-id (vector-ref layer-array layer-index))

  16. (set! layer-name (car (gimp-item-get-name layer-id)))

  17. (if (> layer-index 0)
  18. (begin
  19. (set! message (string-append message " / "))
  20. )
  21. )

  22. (set! message (string-append message layer-name))

  23. (set! layer-index (+ layer-index 1))
  24. )

  25. (gimp-message message)
  26. )
  27. )

  28. (script-fu-register-filter
  29. "myscript" ; 登録する関数の名前
  30. "My Script" ; メニュー項目のラベル
  31. "自作の練習用スクリプトです" ; メニュー項目の説明
  32. "My Name" ; 作成者の名前
  33. "My Name" ; 著作権に関する表示
  34. "January 1, 2023" ; 作成日(改訂日)
  35. "RGB* GRAY*" ; メニュー項目を有効にするためのカラーモードの条件
  36. SF-ONE-DRAWABLE ; メニュー項目を有効にするためのレイヤ選択の条件
  37. )

  38. (script-fu-menu-register
  39. "myscript" ; 対象の関数の名前
  40. "<Image>/Filters" ; メニュー項目の位置
  41. )

まず、4行目から9行目で、

(layer-array 0)
(layer-count 0)
(layer-index 0)
(layer-id    0)
(layer-name  "")
(message     "")

のように変数を宣言していますが、それぞれの変数の役割は以下の通りです。

変数 役割
layer-array レイヤ番号の一覧
※ベクタ
layer-count レイヤの枚数
layer-index 何枚目のレイヤを処理しているか
※ 0 → 1 → 2 のように変化していく
layer-id 処理中のレイヤのレイヤ番号
layer-name 処理中のレイヤのレイヤ名
message 最終的に表示するメッセージ

空の文字列 "" について

変数 layer-name と message の初期値は "" となっていますが、これは空の文字列です。 文字列 "" は、

<終わり>

のように文字のつながりの終わりを示す印しかありません


次に注目すべきは12・13行目です。

(set! layer-array (car (gimp-image-get-layers image)))
(set! layer-count (vector-length (car (gimp-image-get-layers image))))

手続き gimp-image-get-layersから返された戻り値(ベクタ)を変数 layer-arrayに、戻り値のベクタの件数を変数 layer-countに格納しています。

例えば、3枚のレイヤを持つ画像でレイヤ番号が 1・2・8 の場合は、変数 layer-arrayには、

1) 1
2) 2
3) 8

というベクタのデータが格納されます。 同様に変数 layer-countには、

3

が格納されます。

次に注目すべき箇所は、17行目から31行目までの手続き whileによる繰り返しの部分です。 繰り返しの条件が、

(< layer-index layer-count)

となっており、変数 layer-indexが変数 layer-countよりも小さい間は処理を繰り返します。

変数 layer-indexは初期値が 0(ゼロ) で、30行目の、

(set! layer-index (+ layer-index 1))

という記述により、毎回 +1 されますので、繰り返される回数は変数 layer-countの値(=レイヤの枚数)と同じになります。

繰り返しの内側では、

(set! layer-id (vector-ref layer-array layer-index))

という記述により、変数 layer-arrayのベクタの中の情報が1件だけ取り出されて変数 layer-idに格納されます。 変数 layer-indexを番号とする情報が取り出されるので、繰り返しの1回目では、

1

が取り出され、繰り返しの2回目には、

2

が取り出され、繰り返しの3回目には、

8

が取り出されます。

その次の行の、

(set! layer-name (car (gimp-item-get-name layer-id)))

では、変数 layer-idに格納されているレイヤ番号からレイヤ名称を取得し、変数 layer-nameに格納しています。

同じく繰り返しの内側である22行目から26行目では、

(if (> layer-index 0)
    (begin
        (set! message (string-append message " / "))
    )
)

のように、変数 messageに格納されている文字列を操作しています。 変数 layer-indexが 0(ゼロ) より大きければ変数 messageに文字列 " / " を連結しています。

これは、繰り返しの2回目以降ならレイヤ名とレイヤ名の間を区切るための区切りとして " /" を足す、という処理です。

その次の、

(set! message (string-append message layer-name))

では、20行目で取得したレイヤ名称を変数 messageに連結しています。

繰り返しを抜けると33行目でメッセージが表示されます。

(gimp-message message)

により、変数 messsageの中身がメッセージとして表示されます。

選択中のレイヤにアルファチャンネルを追加する

次に紹介するのは、手続き gimp-image-get-selected-layers と gimp-layer-add-alpha の2つです。

手続き 機能
gimp-image-get-selected-layers 選択中のレイヤのレイヤ番号(ベクタ)を返す
gimp-layer-add-alpha 指定されたレイヤにアルファチャンネルを追加する

これらの手続きを利用し、選択中のレイヤにアルファチャンネルを追加するスクリプトを作成してみましょう。 スクリプトファイル myscript.scm を以下のように書き換えます。

  1. (define (myscript image layers)
  2. (let
  3. (
  4. (activelayer-id 0)
  5. )

  6. (set! activelayer-id (vector-ref (car (gimp-image-get-selected-layers image)) 0))

  7. (gimp-layer-add-alpha activelayer-id)
  8. )
  9. )

  10. (script-fu-register-filter
  11. "myscript" ; 登録する関数の名前
  12. "My Script" ; メニュー項目のラベル
  13. "自作の練習用スクリプトです" ; メニュー項目の説明
  14. "My Name" ; 作成者の名前
  15. "My Name" ; 著作権に関する表示
  16. "January 1, 2023" ; 作成日(改訂日)
  17. "RGB* GRAY*" ; メニュー項目を有効にするためのカラーモードの条件
  18. SF-ONE-DRAWABLE ; メニュー項目を有効にするためのレイヤ選択の条件
  19. )

  20. (script-fu-menu-register
  21. "myscript" ; 対象の関数の名前
  22. "<Image>/Filters" ; メニュー項目の位置
  23. )
 

解説の必要がなさそうなほど単純なスクリプトですが、一応説明しておきます。 まず、4行目の、

(activelayer-id 0)

では、変数 activelayer-idを宣言していますが、この変数は選択中のレイヤのレイヤの番号を格納するためのものです。 さらに7行目の、

(set! activelayer-id (vector-ref (car (gimp-image-get-selected-layers image)) 0))

で、変数activelayer-idに手続き gimp-image-get-selected-layersが返す選択中のレイヤのレイヤ番号を格納しています。

  
手続き gimp-image-get-selected-layersはベクタを返すため、手続き vector-refで最初の1件だけを取り出しています。

9行目の、

(gimp-layer-add-alpha activelayer-id)

が、選択中のレイヤにアルファチャンネルを追加している部分です。 変数activelayer-idのレイヤにアルファチャンネルを追加しています。


では、このスクリプトを試してみましょう。

1. アルファチャンネルを持たないレイヤを含む画像を開く
1. アルファチャンネルを持たないレイヤを含む画像を開く

上図のようにアルファチャンネルを持たないレイヤを含む画像を開きます。 今回は上からアルファチャンネル あり / なし / なし の3枚のレイヤを持つ画像です。

選択されているレイヤは、2枚目のアルファチャンネル なし のレイヤです。 レイヤ名称が太字で表示されていることから判断できます。

では、スクリプトを実行しましょう。 プルダウンメニューの"フィルター(R) -> My Script"を実行します。

2. 選択中の2枚目のレイヤにアルファチャンネルが追加されている
2. 選択中の2枚目のレイヤにアルファチャンネルが追加されている

上図のように選択中の2枚目のレイヤにアルファチャンネルが追加されています。 レイヤ名称が太字ではなくなっています。

次の記事へ

長くなってきましたので、そろそろ一区切りしましょう。 続きは次の記事を参照ください

  
  

まとめ

GIMP専用の手続き(関数)は、戻り値が1つの場合も複数の場合も必ずリストで返します。 よって、手続き carや手続き cadrなどを使ってデータを取り出す必要があります。

開いている画像にアクセスするスクリプトは手続き script-fu-register-procedureではなく手続き script-fu-register-filterで登録する必要があります。

手続き 機能
script-fu-register-procedure 開いている画像にアクセスしないScript-Fuスクリプトを登録する
script-fu-register-filter 開いている画像にアクセスするScript-Fuスクリプトを登録する

なお、手続き script-fu-register-filterで登録した関数には 画像ID + レイヤ番号(ベクタ) の引数が渡ってきます。

画像の幅や高さを取得するには、手続き gimp-image-get-width と gimp-image-get-height を利用します。

手続き 機能
gimp-image-get-width 画像の幅を返す
※キャンバスの幅のこと
gimp-image-get-height 画像の高さを返す
※キャンバスの高さのこと

画像のレイヤ番号の一覧、レイヤの名称を取得するには、手続き gimp-image-get-layers と gimp-item-get-name を利用します。

手続き 機能
gimp-image-get-layers レイヤ番号の一覧を返す
gimp-item-get-name レイヤ番号に対するレイヤ名称を返す

手続き gimp-image-get-selected-layers で選択中のレイヤのレイヤ番号を取得することができます。 また、手続き gimp-layer-add-alpha で指定したレイヤにアルファチャンネルを追加することができます。

手続き 機能
gimp-image-get-selected-layers 選択中のレイヤのレイヤ番号を返す
gimp-layer-add-alpha 指定されたレイヤにアルファチャンネルを追加する

なお、Script-Fu プロシージャブラウザーでの引数や戻り値の表記は以下のような対応になっています。

引数や戻り値の種別(データ型) 意味
gint 数値(整数)
GimpCoreObjectArray 数値(整数)のベクタ
gchararry 文字列
GimpImage 画像番号
メニュー