2017-05-02 8 views
0

の引数の数が無効ですが、私は/usr/lib/gimp/2.0/plug-insフォルダエラー:(:1)のpython-FUコマンドライン実行

#!/usr/bin/python 

from gimpfu import * 

def scale(imageName): 
    pass 

register(
    "my", 
    "", 
    "", 
    "", 
    "", 
    "2017", 
    "<Image>/Image/Hi..", 
    "RGB*, GRAY*", 
    [(PF_STRING, 'file_name', 'file_name', 'logo.png')], 
    [], 
    scale) 

main() 

に次のPythonスクリプトを追加しました

gimp --no-interface -b '(python-fu-my RUN-NONINTERACTIVE "logo.png")' -b '(gimp-quit 0)' 

リターンのGimpの手順ブラウザで

batch command experienced an execution error: Error: (: 1) Invalid number of arguments for python-fu-my (expected 4 but received 2)

を経由して、それを実行しているが実際には4つのパラメータがありますが、プロシージャがコマンドライン経由で実行されている場合は、それらを期待するべきではありませんか?

Parameters

私はdocsを追いました。 どうしたのですか?

+0

一時的に 'imageName'を' * imageName'に変更してください。これは、関数に与えられたすべての引数を集め、あまりにも/少なすぎると文句を言うことはありません。その後、それらを印刷して、実際に何が渡されているかを見ることができます。 –

答えて

0

プラグインとして登録しないでください。直接呼び出す必要があります(scale("logo.png"))。しかし、あなたのコードは、gimp.Imageオブジェクトを取得するためにイメージファイルを明示的にロードする必要があります。

+0

こんにちは、私はそれを直接実行する場合* gimp_wire_write_msg:ワイヤプロトコルが初期化されていない*エラー – user1264304

+0

"それを直接実行する" stllは、Gimpを使用していることを意味します。 'gimp --no-interface -b '(scale logo.png")' -b '(gimp-quit 0) ''のようなものです。あなたはPythonのパスを微調整してスクリプトを明示的にインポートする必要があります: gimp-idf --batch-interpreter python-fu-eval -b 'import sys; sys.path = ["。"] + sys.path; import yourscript; yourscript.run( "logo.png")' -b ' pdb.gimp_quit(1) ' – xenoid

関連する問題