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

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

図16.204 「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 キーを押すと、 命令文と返された値が上のウィンドウに表示されます。

図16.205 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 言語のコード) を送ると解釈され実行されます。

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

サーバーポート

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

サーバーログファイル

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

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

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

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

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

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

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

  表16.2 返し値のヘッダー部の形式

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

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

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

Bugzilla にてエラー報告