12

Python を使用した Gimp スクリプトについて学習を始めたばかりで、コンソールにテキストを出力するにはどうすればよいでしょうか? Windows 7 でバージョン 2.7.5 を使用しています。

印刷機能を試してみましたが、python-fu コンソールや Gimp で起動する dev コンソールに何も書き込まれません。これを行うために使用する関数はありますか? それとも、これは 2.7.5 リリースの問題ですか? 「gimp-message」の言及をいくつか見つけましたが、それはScheme(Script-fu)で使用される機能のようです

ありがとう!

(ここにもスレッドとして投稿されます)

4

3 に答える 3

10

stdout と stderr をリダイレクトできます。

#!/usr/bin/env python
# coding: iso-8859-1

from gimpfu import *
import sys
sys.stderr = open( 'c:\\temp\\gimpstderr.txt', 'w')
sys.stdout = open( 'c:\\temp\\gimpstdout.txt', 'w')

def MyUsefulFilter(img, drw):

    # these print redirected to gimpstdout.txt
    print 'hello world'
    print img
    print drw

    # this error redirected to gimpstderr.txt
    x = 0
    y = 1/x


    pdb.gimp_image_undo_group_start(img)
    # useful code here
    pdb.gimp_image_undo_group_end(img)


register(
    "useful_filter",
    "very useful indeed",
    "",
    "MF",
    "GPL",
    "2013",
    "<Image>/Filters/Photo/Useful Filter",
    "RGB*",
    [],
    [],
    MyUsefulFilter)

main()
于 2013-03-26T13:11:53.450 に答える
7

使用する:

pdb.gimp_message('This is displayed as a message')

ただし...これは、コンソールウィンドウが表示されている場合はエラーコンソールに表示され、そうでない場合は[OK]ボタンのあるメッセージダイアログに表示され、ユーザーの確認を待機します。したがって、スクリプトで実際に使用できるのは1回または2回だけです...

もあります

pdb.gimp_progress_set_text('This goes to the status bar')

ステータスバー(IIRC)とプラグインの進行状況ダイアログ(ある場合)に移動しますが、一時的なものです。

デバッグ目的でプレーン印刷ステートメントを使用することもできます。Linuxでは、それらの出力はGimpを起動したターミナルに表示され、Windowsでは、Gimpをそのように起動した場合、gimp-consoleに表示される場合があります(したがって、一般ユーザーは、実際にどこを見ればよいかを指示しない限り、何も表示されません)。 。

于 2012-04-01T08:10:59.960 に答える
2

Python スクリプトから印刷すると、GIMP の stdout チャネルに出力されるだけです。Windows では、メニューからではなく、コマンド ラインから GIMP 自体を起動する必要がある場合があります。

于 2012-03-31T22:56:33.640 に答える