Как отлаживать скриптовые скрипты для gimp в схеме? - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь сделать какой-нибудь скрипт для gimp, используя script-fu, схему.

Естественно, как у новичка, есть много ошибок и недоразумений.

Сейчас я ищудля способа отладки этих сценариев.

Я нашел (gimp-message), но результат не отображается.Я не знаю, есть ли возможность распечатать отладочные сообщения в любом месте, где я мог бы их проверить.

Генерация новых изображений, заполненных текстом, вероятно, сработает ;-), но выглядит немного как излишнее.

Какие есть способы отладки скрипта в gimp?

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Возможно, есть лучший способ, но я могу это сделать так:

  1. открыть консоль скрипта fu (Фильтры -> Скрипт фу -> Консоль)
  2. отредактируйте файл (скажем, например: /Users/jamesanderson/code/scheme/gimp/learn1.scm
  3. type: (загрузите "/Users/jamesanderson/code/scheme/gimp/learn1.scm") вконсоль
  4. нажмите ввод
  5. редактировать файл для внесения изменений
  6. стрелка вверх (чтобы получить вызов функции загрузки снова без ввода)
  7. нажмите ввод

enter image description here

enter image description here

Обратите внимание, что это расширение моего ответа на основе комментарияВыходя за рамки простого доказательства концептуальных сценариев, подобных приведенному выше, важно знать, что эта консоль сохраняет состояние между вызовами. Так, например, если мы запустим скрипт этой схемы:

(define jea-test-img-id nil)

(define (jea-find-test-img)
  (car (gimp-image-list)))

и затем перейдем кконсоль и введите:

jea-test-img-id

, мы получаем в результате:

> jea-test-img-id
()

, что хорошо, скрипт инициирует переменную по мере необходимости, и мырезультат.Таким образом, переменная установлена ​​в скрипте, консоль сохраняет изменение состояния из скриптаТеперь давайте изменим состояние в консоли:

(set! jea-test-img-id (jea-find-test-img))

мы вызываем вспомогательную функцию, которая захватывает первый идентификатор изображения в списке активных изображений и сохраняет его в объявленной нами ранее переменной (которая тогда была равна нулю).Теперь давайте снова рассмотрим вопрос:

jea-test-img-id

затем результат:

> jea-test-img-id
1

такой высокий уровень: когда вы работаете над сценарием, создайте рабочие переменные, которые содержат то, что вы хотитеработать над изображением, пикселями, шириной и т. д., а затем пошагово, чтобы функции работали.В конце вы можете свернуть его в одну чистую функцию, как только у вас будут короткие фрагменты фрагмента.

0 голосов
/ 28 октября 2018

Вывод gimp-сообщения отправляется в «консоль ошибок» (если у вас есть эта настраиваемая настройка диалога), в противном случае в диалоговом окне с предупреждением.

Если вы работаете в Linux или OSX, вы также можете запуститьGimp из терминала и использовать (print ...) звонки, они будут отображаться в терминале.

Вы можете упростить свою жизнь и писать свои скрипты на Python (легче учиться, и более мощный ...).См. здесь для документации, здесь для некоторых примеров и здесь для некоторых приемов отладки для Windows.

...