お詫びと訂正(2018-11-17掲載)

 当記事に掲載中のサンプルコードに深刻な誤りがありました(修正前のコードではGIMPにプラグインとして認識されず、GIMPのプラグイン一覧に表示されない)。register関数に渡す引数の7番目が誤っていましたので下記の通り訂正します。

訂正箇所

    "/Filters/hoge/hoge",

訂正後

    "<Image>/Filters/hoge/hoge",

 当記事をご覧の方に誤った情報を提供し、ご迷惑をおかけ致しましたことをお詫び申し上げます。


 バージョン2.8のGIMPのPython-Fuでスクリプトを書く際の個人用メモ書き。

 GIMPからスクリプトを呼び出したときに最初に実行される関数には、引数に現在の画像(image)と現在のレイヤー(layer)が渡されてくる。これをコンソールでの逐次実行上で模擬するため、スクリプトを書き始める際にまず以下の二行をコンソールに入力する。

image = gimp.image_list()[0]
layer = image.active_layer

 以後、取得したimageとlayerに対して処理を書いてコンソールに入力し、想定通りの処理が行われていくかを確かめる。想定通りであることが確認できたら、関数にまとめあげる。

image = gimp.image_list()[0]
layer = image.active_layer


def hoge(image, layer):
    # 何らかの処理
    pass


hoge(image, layer)

 最終的にGIMP上から実行可能にするためには、まず以下の通りに書き換え、さらにregister関数に渡す値を適宜書き換えた後に、plug-insフォルダ内に保存する。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from gimpfu import *


def hoge(image, layer):
    # 何らかの処理
    pass


register(
    "hoge",
    "blurb",
    "help",
    "author",
    "copyright",
    "2018",
    "<Image>/Filters/hoge/hoge",
    "*",
    [],
    [],
    hoge
)
main()