省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

GIMP / Python Tips: ファイルが読み込まれていないときにプラグインを無効にするには... ?

 GIMPにおいて Python-fu を使ってプラグインを作成する際に、プラグインをファイルが読み込まれているときのみ有効にしたい場合があります。つまり、ファイルが読み込まれていないときは薄く表示され無効にしておきたい場合です。

 これはどのように実現したらよいでしょうか? 以下、以前お示しした、基本的なプラグインのひな型を再掲します。

 

 

基本的なひな型

#!/usr/bin/python Pythonインタープリターを起動
# -*- coding: codename -*- ←必要に応じてスクリプトで使う文字コードを宣言
            必要なければこの行自体不要
            メニューに日本語を表示したい場合 codenameutf-8にする
            同時にプラグインファイル全体をuft-8で保存しておく

from gimpfu import * PythonGIMPライブラリを呼び出す                   他のライブラリも呼び出す必要があれば適宜ここで宣言
def  plugin_name( 引数 ): プラグインの本体を以下定義

 

 ここにプラグインの具体的処理内容をインデントをつけて記述


register(   →以下GIMPプラグインとして登録する際の情報を記述
     "proc_name", プラグインコマンド名
     "blurb",  →プロシジャーブラウザに表示するプラグインの説明
     "help",  プラグインのhelpで表示する説明 blurbと同一で可
     "author", プラグイン著者名
     "copyright", プラグイン著作権者名 通常はauthorと同一
     "date", →著作年等
     "label", →メニューの中で表示されるプラグインのラベル
    例えば、"Resize to max..." 等
     "imagetypes", プラグインが処理対象とする画像のタイプ
 具体的には RGB, RGB*, GRAY*, INDEXEDなど
 指定しないなら "" で良い。また2つ以上指定するならカンマで区切り
 "RGB*,GRAY*" などと記述

     [parms],  プラグインに与えるパラメーター
   もしプラグイン起動時に入力ダイアログを表示する場合はここに記述※
   入力ダイアログがなければ のまま
    
,  プラグインの結果 通常は [] のままでよい
     plugin_name,
        Plugin_nameは、Pythonコードで呼び出す際のメソッドの名前
           def で、定義した名前を使用。
           def で plugin_main としたら
           ここでも、それと同じく plugin_main と書く。

    menu = "menuexpresson")
        →また、menuexpression は、プラグインGIMPのメニューの
         どこに表示するかを指示する。
         
main() プラグイン本体を呼び出し

 で、この上の imagetypes というところがありますが、ここに "*" とアステリスクを入れます。するとファイルが読み込まれていないとき、そのプラグインは無効になります。また特定の型の画像が読み込まれているときだけ有効にしたいときは、"RGB*" だとか、"GRAY*" , "INDEXED*"などと指定すると、その型の画像が読み込まれているときだけ有効になります。

 逆にファイルが読み込まれてないときにも動作させたい場合 (例えば、プラグインを起動してファイルを読み込むなど) は、ここに何かを記述してしまうと、ファイルが読み込まれないと無効となり、うまく動作しないことになります。ご注意ください。