LINUX.ORG.RU

Сообщения mikhailKazakov

 

GIMP - Scheme (Script-Fu) - Cохранение слоев в png

Нижеприведенный скрипт перебирает все слои, берет их имена и сохраняет в картинки png. Пожалуйста, помогите мне подредактировать код, т. к. с Scheme Script-Fu знаком первый день, программирую на ООП языках. Нужно, чтобы, если в имени слоя был символ «-», то слой НЕ сохраняется в png картинку.

(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 format))
               (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"
  "Экспорт слоёв"
  "Экспортирует слои в отдельные изображения в формате PNG"
  "Stuart P. Bentley <stuart@testtrack4.com>"
  "(C) 2011 by Stuart P. Bentley"
  "June 28, 2011"
  "*"
  SF-IMAGE       "Image"         0
  SF-DRAWABLE    "Drawable"         0
  SF-DIRNAME     "Выбрать папку для сохранения"  ""
  SF-STRING      "Формат имени изображений\
  (~i = Имя изображения\
  ~l = Имя слоя\
  ~~ = ~)"
  "~l.png"
)

 , script-fu

mikhailKazakov
()

RSS подписка на новые темы