Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?


Zaloguj się podając nazwę użytkownika, hasło i długość sesji

Polskie Forum Użytkowników GIMP-aDodatkiPluginy i Script-FuWątek: [ROZ]Gimp Batch Brush Converter Script
Strony: [1]
DrukujPobierz PDF
Autor Wątek: [ROZ]Gimp Batch Brush Converter Script  (Przeczytany 3832 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
Silterss
Emeryt

Reputacja: 4 Offline Offline

Płeć: Mężczyzna
GIMP: 2.8 + GAP
JID: silterss@jabbim.com
Licencja: CC-NC-BY-SA
Wiadomości: 654
Galeria Użytkownika



Zobacz profil
« : 28.03.2012, 21:58:50 »

Posiadam pewien skrypt konwertujący obrazy na pędzle. Mowa tu o Gimp Batch Brush Converter Script, którego data powstania wskazuje na wersję GIMP-a 2.4, Pod 2.6 pojawia się komunikat błędu zmiennej.
Nie jestem obeznany w pisaniu skryptów scm i stąd moja prośba o przerobienie go na wersję 2.6.
Skrypt obecnie wygląda tak:
Kod:
(define (brush-batch load opt name filename spacing location)
(set! a
(cond
(( equal? opt 0 ) ".jpg" )
(( equal? opt 1 ) ".bmp" )
(( equal? opt 2 ) ".xcf" )
(( equal? opt 3 ) ".png" )
(( equal? opt 4 ) ".gif" )
))
(let* (
(filelist (cadr (file-glob (string-append load "\\*" a)  1)))
(s 1)
)
(while filelist
(let* (
(loadfile (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE loadfile loadfile)))
)


(gimp-image-flatten image)
(set! drawable (gimp-image-get-active-drawable image))
(if (= 1 (car (gimp-selection-is-empty image)))
(gimp-selection-all image))
(gimp-displays-flush)
(gimp-edit-copy (car drawable) )
(set! selection-bounds (gimp-selection-bounds image))
(set! sx1 (cadr selection-bounds))
(set! sy1 (caddr selection-bounds))
(set! sx2 (cadr (cddr selection-bounds)))
(set! sy2 (caddr (cddr selection-bounds)))
(gimp-image-delete image)
(set! swidth  (- sx2 sx1))
(set! sheight (- sy2 sy1))
(set! newimage (gimp-image-new swidth sheight 0))
(set! newlayer (gimp-layer-new (car newimage) swidth sheight 1 "newlayer" 100 0))
(gimp-image-add-layer (car newimage) (car newlayer) 0)
(gimp-drawable-fill (car newlayer) 3)
(gimp-edit-paste (car newlayer) 0 )
(gimp-image-flatten (car newimage))
(set! active(gimp-image-get-active-drawable (car newimage)))
(gimp-desaturate (car active))
(gimp-image-convert-grayscale (car newimage))
(gimp-displays-flush)
(gimp-selection-all (car newimage))
(set! filename2 (string-append location "/" filename (string-append (number->string s))".gbr"
))
(file-gbr-save 1 (car newimage) (car active) filename2 (string-append name (number->string s)) spacing (string-append name (number->string s))))
(set! s (+ s 1))
(gimp-image-delete (car newimage))
(set! filelist (cdr filelist))))
)
(script-fu-register "brush-batch"
   "<Toolbox>/Xtns/Script-Fu/Gimp-talk.com/Brush-batch..."
   "turns a folder of files into brush's works with jpg, bmp, xcf, png and gif"
   "Karl Ward"
   "Karl Ward"
   "April 2006"
   ""
   
SF-DIRNAME    "Load from" ""
SF-OPTION     "File Type"'("jpg" "bmp""xcf""png""gif")

    SF-STRING     "Brush Name" "name"
    SF-STRING     "File Name" "filename"
    SF-ADJUSTMENT "spacing"         '(25 0 1000 1 1 1 0)
    SF-DIRNAME    "SAVE TO FOLDER" "")
Za wszelką pomoc będę wdzięczny.
« Ostatnia zmiana: 23.06.2012, 15:41:05 wysłane przez Silterss » Zapisane

be@
Moderator globalny

Reputacja: 49 Offline Offline

Płeć: Kobieta
GIMP: 2.8
Licencja: CC-BY
Wiadomości: 7 405
Galeria Użytkownika



Zobacz profil
« Odpowiedz #1 : 28.03.2012, 22:07:35 »

Kod:
(define (brush-batch load opt name filename spacing location)
(let* (

(a

(cond

(( equal? opt 0 ) ".jpg" )

(( equal? opt 1 ) ".bmp" )

(( equal? opt 2 ) ".xcf" )

(( equal? opt 3 ) ".png" )

(( equal? opt 4 ) ".gif" )

))

(filelist (cadr (file-glob (string-append load "\\*" a) 1)))

(s 1)
(count (car (file-glob (string-append load "\\*" a) 1)))

(drawable nil)
(selection-bounds nil)
(sx1 nil)
(sy1 nil)
(sx2 nil)
(sy2 nil)
(swidth nil)
(sheight nil)
(newimage nil)
(newlayer nil)
(active nil)
(filename2 nil)

)
(while (pair? filelist)
(let* (
(loadfile (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE loadfile loadfile)))
)


(gimp-image-flatten image)
(set! drawable (gimp-image-get-active-drawable image))
(if (= 1 (car (gimp-selection-is-empty image)))
(gimp-selection-all image))
(gimp-displays-flush)
(gimp-edit-copy (car drawable) )
(set! selection-bounds (gimp-selection-bounds image))
(set! sx1 (cadr selection-bounds))
(set! sy1 (caddr selection-bounds))
(set! sx2 (cadr (cddr selection-bounds)))
(set! sy2 (caddr (cddr selection-bounds)))
(gimp-image-delete image)
(set! swidth (- sx2 sx1))
(set! sheight (- sy2 sy1))
(set! newimage (gimp-image-new swidth sheight 0))
(set! newlayer (gimp-layer-new (car newimage) swidth sheight 1 "newlayer" 100 0))
(gimp-image-add-layer (car newimage) (car newlayer) 0)
(gimp-drawable-fill (car newlayer) 3)
(gimp-edit-paste (car newlayer) 0 )
(gimp-image-flatten (car newimage))
(set! active(gimp-image-get-active-drawable (car newimage)))
(gimp-desaturate (car active))
(gimp-image-convert-grayscale (car newimage))
(gimp-displays-flush)
(gimp-selection-all (car newimage))
(set! filename2 (string-append location "/" filename (string-append (number->string s))".gbr"
))
(file-gbr-save 1 (car newimage) (car active) filename2 (string-append name (number->string s)) spacing (string-append name (number->string s))))
(set! s (+ s 1))
(gimp-image-delete (car newimage))
(set! count (- count 1))
(set! filelist (cdr filelist))
))
)
(script-fu-register "brush-batch"
"<Image>/Tools/Pędzle/Tworzenie wsadowe B&W..."
"Przekształca folder plików typu jpg, bmp, xcf, png, gif w pędzle"
"Karl Ward"
"Karl Ward"
"April 2006"
""

SF-DIRNAME "Załaduj z katalogu" ""
SF-OPTION "Pliki typu"'("jpg" "bmp""xcf""png""gif")

SF-STRING "Nazwa pędzla" "name"
SF-STRING "Nazwa pliku" "filename"
SF-ADJUSTMENT "Odstęp" '(25 0 1000 1 1 1 0)
SF-DIRNAME "Zapisz do katalogu" "")
A ten jest zły? Ciut się różni i u mnie w Gimp 2.6 działa...
« Ostatnia zmiana: 29.03.2012, 00:19:47 wysłane przez beata072 » Zapisane
Silterss
Emeryt

Reputacja: 4 Offline Offline

Płeć: Mężczyzna
GIMP: 2.8 + GAP
JID: silterss@jabbim.com
Licencja: CC-NC-BY-SA
Wiadomości: 654
Galeria Użytkownika



Zobacz profil
« Odpowiedz #2 : 29.03.2012, 11:24:10 »

Dzięki Beato. Skrypt faktycznie pracuje bez błędów, ale na Linuksa się nadaje po małej modyfikacji.
Wersja linuksowa w załączniku.

* brush-batch.scm (2.38 KB - pobrany 139 razy.)
« Ostatnia zmiana: 29.03.2012, 16:52:39 wysłane przez Silterss » Zapisane

Ziomioslaw
Administrator

Reputacja: 46 Offline Offline

Płeć: Mężczyzna
GIMP: 2.10
JID: ziomioslaw@jabber.org
Licencja: Copyright
Wiadomości: 7 433
Galeria Użytkownika


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #3 : 29.03.2012, 13:30:16 »

Pozwoliłem sobie przenieść wątek i zmienić nazwę;)
Zapisane
Strony: [1]
DrukujPobierz PDF
Polskie Forum Użytkowników GIMP-aDodatkiPluginy i Script-FuWątek: [ROZ]Gimp Batch Brush Converter Script
Skocz do: