10.6. Script-Fuサブメニュー

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

10.6.1. Activating the Submenu

  • You can access this command from the main menu through FiltersDevelopmentScript-Fu.

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

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

ちなみにひとつでもスクリプトに間違いがあると、 保存できていなければフィードバックが何も得られません。

10.6.3. Script-Fu コンソール

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

The console consists of a large scrollable main window for output and a text box at the bottom to enter Scheme commands. When you type a Scheme statement and then press the Enter key, the command and its return value will be displayed in the main window.

図16.251 Script-Fu コンソール

Script-Fu コンソール

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

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

参照...

The Browse button is next to the Scheme commands text box. When clicked, the procedure browser window opens with an additional Apply button.

Select a PDB procedure from the list and press the Apply button. The selected procedure and its parameter names will be pasted into the text box of the Script Console.

Now you just have to replace the parameter names after the procedure name with actual values. Then you can call the procedure by pressing Enter.

閉じる

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

クリア

When you click on this button, the content of the main window will be removed. Note that you can't get back the removed content using the Save command.

保存

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

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

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

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

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 サーバーと交信できる単純なコマンドライン端末用プログラムです。