Почему GIMP не может обработать этот скрипт? - PullRequest
2 голосов
/ 28 июня 2011

У меня есть этот скрипт как .scm в Gimp:

;MIT license.

(define (script-fu-export-layers img drw path outnameformat)
; credit to Vijay Mathew on Stack Overflow for the expand keywords function
  (let ((expand-keywords (lambda(format tokens)
    (let loop ((slist (string->list string))
               (in-replace-mode #f)
               (result ""))
      (if (not (null? slist))
          (let ((c (car slist)))
            (cond (in-replace-mode
                   (let ((token (car (cdr (assoc c tokens)))))
                     (loop (cdr slist) #f (string-append result token))))
                  ((char=? c #\~)
                   (loop (cdr slist) #t result))
                  (else
                   (loop (cdr slist) #f (
                      string-append result (make-string 1 c))))))
          result)))))
  (for-each (lambda (layer)
    (let* (
        (name (expand-keywords outnameformat '(
          (#\i (car(gimp-image-get-name img)))
          (#\l (car(gimp-drawable-get-name layer))))))
        (outpath (string-append path "/" name)))
      (gimp-file-save RUN-NONINTERACTIVE img layer outpath name)
  )) (vector->list(cadr (gimp-image-get-layers img)))))
)

(script-fu-register
  "script-fu-export-layers"
  "L_ayers"
  "Export all layers as individual files."
  "Stuart P. Bentley <stuart@testtrack4.com>"
  "Copyright 2011 Stuart P. Bentley"
  "June 28, 2011"
  "*"
  SF-IMAGE       "The Image"         0
  SF-DRAWABLE    "The Layer"         0
  SF-DIRNAME     "Output directory"  ""
  SF-STRING      "Filename Format (~i = image name, ~l = layer name)"
                                                          "~i-~l.png"
)
(script-fu-menu-register "script-fu-export-layers" "<Image>/File/E_xport")

С комментарием вверху файла скрипт вообще не загружается. Когда комментарий удаляется, GIMP выдает ошибку при обновлении сценариев, которая «Ошибка при загрузке C: \ Users \ Stuart.gimp-2.6 \ scripts \ export-Layers.scm: Ошибка: непрямые скобки: 1». Я не знаю, о чем идет речь, так как он хорошо анализируется, когда я запускаю его на Codepad (он ломается в точке script-fu-register).

1 Ответ

3 голосов
/ 30 июня 2011

Это поведение согласуется с тем, что произошло бы, если бы отсутствовали окончания строк (комментарии, комментирующие весь последующий текст).Убедитесь, что ваш редактор не делает ничего смешного, как сохранение файла с окончанием строки CR в Windows.

...