GIMP Pythonスクリプトを書く
-
11-12-2019 - |
質問
私がやりたいことは、Pythonプログラム(subprocess.popen、おそらく同じ時間)からGIMPを開くことです。同時にGIMPは画像を開き、レイヤーを追加するPythonスクリプトで始まります...さて、どうすれば私はそれを達成することができます(私はGIMPがより良いドキュメントを持っていたことを願っています...)?
更新:
私はこれを行いました:subprocess.Popen(["gimp", "--batch-interpreter" , "python-fu-eval" , "-b" ,"\'import sys; sys.path.append(\"/home/antoni4040\"); import gimpp; from gimpfu import *; gimpp.main()\'"])
ですが、コンソールが「batchコマンドが正常に実行された」と表示されていても、何も起こらない...
update2:
.from gimpfu import *
def gimpp():
g = gimp.pdb
images = gimp.image_list()
my_image = images[0]
layers = my_image.layers
new_image = g.gimp_file_load_layer("/home/antoni4040/Έγγραφα/Layout.png")
my_image.add_layer(new_image)
new_layer = g.gimp_layers_new(my_image, 1024, 1024, RGBA_IMAGE, "PaintHere", 0, NORMAL_MODE)
my_image.add_layer(new_layer)
register('GimpSync', "Sync Gimp with Blender", "", "", "", "", "<Image>/SyncWithBlender", '*', [], [], gimpp)
main()
解決
OK私はついにそれを働いた。私は GIMP Python Scripting を使用して、トンを実行できるGIMPプラグインを作成しました。あなたが言った層を含むもの。その後、Python GIMPスクリプトに引数を渡すコマンドラインからGIMPを実行するだけです。記事 GIMPバッチでPython-FUを使用するモードは、コマンドラインからGIMPプラグインを呼び出す方法を学ぶための優れたリソースでした。以下の例では、指定された画像をGIMPにロードし、水平方向に反転させ、GIMPを保存して終了します。
flip.pyはGIMPプラグインで、〜/ .gimp-2.6 / Plug-Ins / Flip.pyのプラグインディレクトリに配置してください。
flip.py
.
from gimpfu import pdb, main, register, PF_STRING
from gimpenums import ORIENTATION_HORIZONTAL
def flip(file):
image = pdb.gimp_file_load(file, file)
drawable = pdb.gimp_image_get_active_layer(image)
pdb.gimp_image_flip(image, ORIENTATION_HORIZONTAL)
pdb.gimp_file_save(image, drawable, file, file)
pdb.gimp_image_delete(image)
args = [(PF_STRING, 'file', 'GlobPattern', '*.*')]
register('python-flip', '', '', '', '', '', '', '', args, [], flip)
main()
端末から実行することができます。
.
gimp -i -b '(python-flip RUN-NONINTERACTIVE "/tmp/test.jpg")' -b '(gimp-quit 0)'
またはWindows CMDから:
.
gimp-console.exe -i -b "(python-flip RUN-NONINTERACTIVE """<test.jpg>""")" -b "(gimp-quit 0)"
またはPythonスクリプトから同じことを使用して同じ動作を実行できます。
.
from subprocess import check_output
cmd = '(python-flip RUN-NONINTERACTIVE "/tmp/test.jpg")'
output = check_output(['/usr/bin/gimp', '-i', '-b', cmd, '-b', '(gimp-quit 0)'])
print output
私は彼らが仕事をすることを確認するためにテストしました。各スクリプトが実行された後にイメージが反転するのがわかります。