GIMP Python-Fu 自作スクリプトでファイル選択の結果を受け取る

前回は、無料の画像編集ソフト GIMP のプラグインフォルダ―のパスを確認・追加し、そのフォルダに Python で register 関数を書き、 GIMP のメニューからログ出力だけを行うプラグインのメイン関数を実行することができました。
しかし、処理に必要な引数を入力し、それを受け取る設定がまだできていません。

前回の記事:GIMP Python-Fu スクリプトメニューに自作プログラムを追加する | Compota-Soft-Press

今回は、 register 関数の引数部分を変更し、Python-Fu 自作スクリプトのメイン関数に GIMP で選択したファイルパスを引数として渡してもらい、それをログ出力します。
※ GIMP のバージョンは 2.10.34 です。

参考にする Python-Fu スクリプト

前回紹介したプラグインフォルダ―の中にはいくつか .py ファイルがありました。
その中でも、画像の色情報を参照していそうな「histogram-export.py」を参考にします。
特に設定を変えずにインストールしていれば「C:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins」にあるかもしれません。

GIMP プラグインフォルダ―の .py を検索し、目的に似たスクリプトを探してみましょう.

プラグインフォルダ―を .py で検索すると見つけやすいかもしれません。

register 関数の引数の設定

以下が参考にする histogram-export.py の register 関数のメニュー呼び出しの際に受け取る引数の設定です。

    [(PF_IMAGE,  "img", _("_Image"), None),
     (PF_DRAWABLE, "drw", _("_Drawable"), None),
     (PF_FILENAME, "filename", _("Histogram _File"), ""),
     (PF_FLOAT, "bucket_size", _("_Bucket Size"), 1.0),
     (PF_BOOL, "sample_average", _("Sample _Average"), False),
     (PF_RADIO, "output_format", _("Output format"), "pixel count",
            ((_("Pixel count"), "pixel count"),
             (_("Normalized"), "normalized"),
             (_("Percent"), "percent"),
            )
     )
    ],

引数群はリスト [] で囲まれています。
その中の引数は、不変な要素群を扱うタプル () で定義されています。
参照:Pythonのデータ型(コレクション編) – Python Boot Camp Text ドキュメント

タプルの要素数は 4 つで固定で、最初は型を表す ID を指定します。
その後の 3 つの要素は、最初に指定した型によって渡すものが異なります。
今回は、画像処理で必要な PF_IMAGE, PF_DRAWABLE ファイル出力で必要な PF_FILENAME を引数に設定しました。他についても以下のサイトや plug-ins フォルダの .py ファイルなどを参照してください。
参照:3.4. はじめての Script-Fu スクリプト

        [
            (PF_IMAGE, "image",       "Input image", None),
            (PF_DRAWABLE, "drawable", "Input drawable", None),
            (PF_FILENAME, "filename", _("Color Code csv _File"), "")
        ],                      #引数

次にメニューから呼び出される関数に引数を追加します。
※呼び出される関数や、メニューへの設定は前回の register 関数の説明を参照してください。

def main_sc_log_color_code_rect(image, drawable, filename):
    """main 関数の処理"""
    gimp.message('hello Python-Fu Plugins!' + filename)

GIMP の起動

Python-Fu 自作スクリプトをプラグインフォルダ―に保存したら、 GIMP を起動しましょう。
スクリプトに問題が無ければ、指定した場所にメニューが追加されます。
表示されなければ、何か問題があるので、修正したり成功したときの状態に戻して再び GIMP を起動してください。

前回説明したとおり、この Python-Fu 自作スクリプトは画像が必要なスクリプトなので、画像を用意していない状態だとメニューアイテムが非活性になります。
メニュー「ファイル」→「新しい画像」などで画像を用意してから、メニューを選択しましょう。

GIMP 自作Python-Fuスクリプト用のメニューが追加されたので選択します.(画像を用意してから選択します)

引数に出力用のファイルパスを追加したので、ダイアログが表示されました。
引数に応じて自動的に GIMP が作ってくれた引数を入力するためのダイアログです。
ファイルパスを設定する GUI の下のテキストボックスは、ステータスバーのようです。
ヘルプボタンを押したときなどに、現在の状態の説明などが数秒表示されました。

GIMP 自作Python-Fuスクリプトの引数指定に応じたダイアログが表示されました.

入力ダイアログの説明文も register 関数で指定したものです。

register(
        "sc_log_color_code_rect",       #プロシージャの名前
        "Logs the color codes of the pixels in the specified rectangle. 指定矩形内のピクセルのカラーコードをログ出力します。",          #プラグインの情報
        "Logs the color codes of the pixels in the specified rectangle. 指定矩形内のピクセルのカラーコードをログ出力します。",          #詳しいプラグインの情報
        # 略
        )

ファイルパスを選択してから、ダイアログの OK ボタンを押すと、先ほど Python-Fu 自作スクリプト中の呼び出される関数に記述した。 gimp_message 関数が実行され、エラーコンソールダイアログにメッセージが出力されました。
今回は受け取った filename 引数も表示しています。
これにより、メニューを選択して表示された、入力ダイアログの情報が関数の引数として受け取ることができるようになりました。

GIMP 自作Python-Fuスクリプトの引数を呼び出される関数で受け取ることができました.

まとめ

今回は、無料の画像編集ソフト GIMP の Python-Fu 自作スクリプトの register 関数内の引数群を設定するリストを変更しました。
GIMP でメニューを選択すると、その引数群のリストで指定した引数を入力するためのダイアログが表示され、 OK ボタンを押すことで、入力した値が引数として実行する関数に渡されることが確認できました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました