10.6. 「Script-Fu」サブメニュー
| 10. 「フィルタ」メニュー |

### 10.6. 「Script-Fu」サブメニュー

図15.203 「Script-Fu」サブメニュー

Script-Fu サブメニューにはScript-FuコンソールをはじめScript-Fu関連のコマンドが入っています。 Script-Fu はGIMPのコマンドを自動的に実行させるスクリプトを書くための言語の一種です。

#### 10.6.1. サブメニューへの入り方

- 画像ウィンドウのメニューより フィルタ → Script-Fu

#### 10.6.2. スクリプトを再読み込み

Script-Fuスクリプトを追加や削除や変更するときにはいつもこのコマンドが必要になることでしょう。 このコマンドを実行するとScript-Fuファイルが読み込み直され、 Script-Fuのメニュー項目を含んでいるメニューは頭から構築し直されます。 GIMPは一旦スクリプトを読み込んでしまうとスクリプトの内容が変更されてもGIMPを再起動するまでは感知しないため、 このコマンドを実行しない限りスクリプトの変更を反映できません。

ちなみに保存できていないままスクリプトが実行に失敗すると、 フィードバックが何も得られません。

#### 10.6.3. Script-Fu コンソール

Script-FuコンソールはScheme言語のコマンドを対話的に試すのに使えます。

このコンソールには繰り寄せ可能な大きなウィンドウがあり、 その下にある一行入力欄から送られたコマンドの出力が表示されます。 この欄にScheme式命令文を記入して Enter キーを押すと、 命令文と返された値が上のウィンドウに表示されます。

図15.204 Script-Fuコンソール

Scheme の詳しい案内や 「Script-Fu作成演習」 での Script-Fuコンソール の使い方の例もご覧ください。

Script-Fuコンソールのボタン

参照...

  参照 ボタンはScheme命令の記入欄の右隣にあります。 クリックすると プロシージャブラウザ が開かれます。 プロシージャブラウザには 適用 ボタンがついています。

  プロシージャブラウザから取り込むためのボタン

  プロシージャブラウザの 適用 ボタンをクリックすると、 ブラウザで選択した手続き命令のコードがコンソールのScheme命令記入欄に貼り付けられます。

  取り込まれた PDB 手続き命令 (プロシージャ)

  そうしたらもうパラメータの名前 (上図の例では「layer」と「mode」) を値に置き換えるだけで、 あとは Enter を押せばよいのです。

閉じる

  閉じる ボタンをクリックするとScript-Fuコンソールを閉じます。

クリア

  クリア ボタンをクリックすると、 主ウィンドウ部分から現在のコマンド出力の表示が消えます。 ちなみにコンソール出力に表示された内容は 保存 していても一旦クリアすると復元ができません。

保存

  保存 コマンドは主ウィンドウ、 つまりScript-Fuの出力表示の内容をそっくりそのまま (エコーバック行の「`>`」記号も含め) テキスト形式のファイルとして保存します。 ボタンをクリックするとファイルブラウザが開かれますので保管場所とファイル名を指定してください。

#### 10.6.4. サーバスタート...

サーバスタート... コマンドはサーバプログラムを起動します。 起動時に指定したポートを介してサーバにScript-Fu命令 (Scheme言語のコード) を送ると解釈され実行されます。

図15.205 Script-Fuサーバオプション

サーバポート

  この番号のポートを介しScript-Fuサーバが送受信します。 サーバは複数起動させることも可能ですが、 もちろん互いに異なるポート番号を指定しなければなりません。

サーバログファイル

  必須ではありませんがここでファイル名を指定するとサーバが発する不正や事故のメッセージがそのファイルに書き込まれます。 ファイル名を指定しない場合はメッセージが標準出力に送られます。

Script-Fuサーバのプロトコル

Script-Fuサーバと交信するためのプロトコルはとても単純です。

- サーバに送るメッセージ (Script-Fu命令文) にはいずれもその文字列の長さ `L` を含むつぎのような3バイトを頭に付加します。

  表15.1 コマンドのヘッダ部の形式

  バイト順 | 内容 | 意味
  --- | --- | ---
  0 | 0x47 | マジックバイト ('G')
  1 | L div 256 | `L` の高位バイト
  2 | L mod 256 | `L` の低位バイト

- サーバが返すメッセージ (返し値もしくはエラーメッセージ) にはいずれもその文字列の長さ `L` を含むつぎのような4バイトが付加されています。

  表15.2 返し値のヘッダ部の形式

  バイト順 | 内容 | 意味
  --- | --- | ---
  0 | 0x47 | マジックバイト ('G')
  1 | エラー判別 | 0 は成功。 1 は事故。
  2 | L div 256 | `L` の高位バイト
  3 | L mod 256 | `L` の低位バイト

| ティップ
面倒くさそうですか? それなら GIMP 2.7 版 (2.8用開発者版) のソースコードに含まれている servertest.py という名前の Python スクリプトはいかがでしょう。 これは Script-Fu サーバと交信できる単純なコマンドライン端末のプログラムです。

10.5. 「Python-Fu」サブメニュー |  | 11. 「ウィンドウ」メニュー