TypeError: wrong number of parameters
X11 Mouse Cursor plug-in for GIMP(gimp-xmc-plugin)の「file-xmc-save」関数は15の引数を持つ。以下に解説すると
run-mode INT32 他のplug-inと同じ image IMAGE 〃 drawable DRAWABLE 〃 filename STRING 〃 raw-filename STRING 〃 x-hot INT32 hotspotの座標。実現出来ない座標なら元の座標を保持。 y-hot INT32 したがって意図的に(-1, -1)などとして元の座標を保持することが出来る crop INT32 保存時にAuto-crop(画像の隅の不要な透過部分を切り落とす)するかどうか size INT32 (nominal)sizeの値 size-replace INT32 既にsizeが指定されているフレームも上の値で置き換えるか delay INT32 delayの値(5未満なら50に置き換えられる) delay-replace INT32 既にdelayが指定されているフレームも上の値で置き換えるか copyright STRING 著作権情報、 NULLで元の文字列を保持 license STRING ライセンス情報 〃 other STRING その他のコメント 〃
となる。(真偽値は0でFALSE、1でTRUE)
以下にGIMP-Pythonで「file-xmc-save」関数を呼び出して画像をXMCで保存するスクリプトの例を示す。
xmc_save.py:
#!/usr/bin/env python # -*- coding: utf-8 -*- from gimpfu import * def xmc_save_py(img, drw): pdb.file_xmc_save(img, drw, "hoge.xmc", "hoge.xmc", -1, -1, #元のhotspotの座標を保持 1, #Auto-cropする 40, #(nominal)size 1, #すべてのフレームのsizeを40にする 0, #delay(5未満なので50になる) 0, #delayの決まっていないフレームのみ50にする None, #著作権情報は変更しない "", #ライセンスは空文字列にする u"実験")#コメントは「実験」に変更 register( "python-fu-xmc-save", "summary", "description", "name", "copyright", "date", "<Image>/File/Test/xmc_save_py", "RGBA", [], [], xmc_save_py) main()
注意点
- 「pdb.file_xmc_save」でfile_xmc_save関数を呼び出す。
- 第一引数の「run_mode」は書いてはいけない。もし書くと「TypeError: wrong number of parameters」とエラーが表示される。
- registerの第9引数は登録するxmc_save_pyの引数を列挙するが、先日の記事で書いたようにrun-mode、image、drawableは書いてはいけないので、無しになる。
- pythonではNULLは「None」になる。
実際に使うにはxmc_save.pyに実行パーミッションを着けて「~/.gimp-2.4/plug-ins」に放り込み、GIMPを立ち上げてファイルメニューからTest→xmc_save_pyとたどる。