10.6. Script-Fuサブメニュー

図15.204 Script-Fuサブメニュー

Script-Fuサブメニュー

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

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.205 Script-Fu コンソール

Script-Fu コンソール

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

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

参照...

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

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

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

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

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

閉じる

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

クリア

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

保存

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

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

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

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

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