Как вывести информацию на консоль в скрипте Gimp Python? - PullRequest
6 голосов
/ 31 марта 2012

Я только начал изучать скрипты Gimp с использованием Python, и мне было интересно, как выводить текст на консоль?Я использую версию 2.7.5 в Windows 7.

Я попробовал функцию печати, но она ничего не записывает в консоль python-fu или консоль dev, которая запускается с Gimp.Есть ли функция, которую я должен использовать, чтобы сделать это?или это проблема с версией 2.7.5?Я нашел несколько упоминаний о «gimp-message», но, похоже, это функция, используемая в Scheme (Script-fu)

Спасибо!

(также опубликовано как тема здесь )

Ответы [ 3 ]

7 голосов
/ 26 марта 2013

Мы можем перенаправить 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()
5 голосов
/ 01 апреля 2012

Использование:

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

Однако ... это отображается в консоли ошибок, если окно консоли открыто, иначе в диалоговом окне сообщения с кнопкой OK, ожидающим подтверждения пользователя.Таким образом, вы можете действительно использовать его только один или два раза в скрипте ...

Существует также

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

Это идет в строке состояния (IIRC) и в диалоге прогресса плагина,если есть, но скорее временный.

Вы также можете использовать простые операторы печати для целей отладки.В Linux их вывод отображается в терминале, с которого вы запустили Gimp, а в Windows они могут появиться в gimp-console, если вы запустили Gimp таким образом (поэтому обычный пользователь ничего не увидит, если вы действительно не скажете им, где искать),

2 голосов
/ 01 апреля 2012

Печать сценария из python froma будет просто печатать на стандартный канал GIMP - возможно, что в Windows вам придется запускать сам GIMP из командной строки, а не запускать его из меню.

...