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

 
Szukanie zaawansowane

86 549 wiadomości w 8 406 wątkach,
wysłane przez 15 762 użytkowników
Najnowszy użytkownik: domibuu

Praca dla Ciebie. Zarabiaj kilka tysięcy miesięcznie.
Polskie Forum Użytkowników GIMP-aGIMPPomocna dłoń (Moderatorzy: snufkin, RRH)Wątek: Jak dodać nową opcje do Scriptu-Fu??
Strony: [1]
Drukuj
Autor Wątek: Jak dodać nową opcje do Scriptu-Fu??  (Przeczytany 694 razy)
0 użytkowników i 1 Gość przegląda ten wątek.
mistrz10
Użytkownik

Reputacja: 2 Offline Offline

GIMP: 2.2
Licencja: Copyright
Wiadomości: 38
Galeria Użytkownika



Zobacz profil
« : 11.11.2007, 19:28:52 »

Cze! Znalazłem coś takie pare działów niżej:
Kod:
; Fire animation script for The GIMP
;
; Copyleft (c) 1998 - 2001
; Vidar Madsen <vidar@prosalg.no>
;
; Contributions, moral and "codal"(?) support:
; - Guillaume <G.DeSercey@bton.ac.uk>
; - Patrick Hohmeyer <P.Hohmeyer@web.de>
; - Jim Miller <magnan@xinu.nu>
; - Mario Cosenza <mcosenza@engsvcs.com>
;
; Basically, it takes an image (with an alpha-channel), and sets
; it on fire. ;-) The user can specify how many frames should be
; used, and which gradient to use to color the flames. The defaults
; ought to work nicely most of the time, though.
;
; This program is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 2 of the License, or
; (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
; GNU General Public License for more details.

(define (script-fu-fireanim-doit image drawable mask xoffs yoffs usebackgnd)
  (plug-in-spread 1 image drawable 1.0 1.0)
  (gimp-levels drawable HISTOGRAM-VALUE 1 255 1.0 0 242)
  (gimp-selection-layer-alpha mask)
  (plug-in-noisify RUN-NONINTERACTIVE image drawable FALSE 2.0 2.0 2.0 0.0)
  (gimp-selection-grow image 1)
  (plug-in-noisify RUN-NONINTERACTIVE image drawable FALSE 0.3 0.3 0.3 0.0)
  (gimp-selection-grow image 2)
  (plug-in-gauss-rle TRUE image drawable 1.0 TRUE TRUE)
  (gimp-selection-none image)
  (gimp-context-set-background '(0 0 0))
  (gimp-drawable-offset drawable FALSE usebackgnd xoffs yoffs)
  (gimp-selection-layer-alpha mask)
  (gimp-context-set-background '(255 255 255))
  (gimp-edit-fill drawable BACKGROUND-FILL)
  (gimp-selection-none image)
  )

(define (script-fu-fireanim-prep image drawable orig gradient)
  (gimp-levels drawable HISTOGRAM-VALUE 1 200 1.0 0 255)
  (gimp-layer-set-preserve-trans drawable TRUE)
  (plug-in-gradmap TRUE image drawable)
  (gimp-layer-set-preserve-trans drawable FALSE)
  (gimp-selection-layer-alpha orig)
  (gimp-edit-copy orig)
  (gimp-floating-sel-anchor (car (gimp-edit-paste drawable FALSE)))
  (gimp-selection-none image)
  )

(define (script-fu-fireanim-copylayer dstimage dstdrawable srcimage srcdrawable)
  (gimp-selection-all dstimage)
  (gimp-edit-clear dstdrawable)
  (gimp-selection-none dstimage)
  (gimp-selection-all srcimage)
  (gimp-edit-copy srcdrawable)
  (gimp-floating-sel-anchor (car (gimp-edit-paste dstdrawable FALSE)))
  )

(define (script-fu-fireanim origimage origdrawable nframes oframes pframes
                            gradient framerate angle distance usebackgnd backgnd)
  (if (< nframes oframes)
    (error "Number of frames < overlap-frames!"))
  (gimp-context-set-gradient gradient)
  (set! width (car (gimp-image-width origimage)))
  (set! height (car (gimp-image-height origimage)))
  (set! xoffs (* distance (sin (* angle (/ 3.141592654 180)))))
  (set! yoffs (- 0 (* distance (cos (* angle (/ 3.141592654 180))))))
  (set! image (car (gimp-image-duplicate origimage)))
  (set! drawable (car (gimp-image-get-active-layer image)))

  (gimp-image-undo-disable image)
  (set! numlayers (car (gimp-image-get-layers image)))
  (set! layerlist (cadr (gimp-image-get-layers image)))
  (set! count numlayers)
  (while (> count 0)
    (set! count (- count 1))
    (if (not (= (aref layerlist count) drawable))
      (gimp-image-remove-layer image (aref layerlist count))
      )
    )
  (if (= usebackgnd TRUE)
    (begin
      (set! bgimage (car (gimp-drawable-get-image backgnd)))
      (set! bgcopy (car (gimp-layer-new image width height RGBA-IMAGE "bgcopy" 100 NORMAL)))
      (gimp-image-add-layer image bgcopy 0)
      (script-fu-fireanim-copylayer image bgcopy bgimage backgnd)
      (gimp-drawable-set-visible bgcopy FALSE)
      )
    )
  (set! frame (car (gimp-layer-new image width height RGBA-IMAGE "frame" 100 NORMAL)))
  (gimp-context-set-background '(0 0 0))
  (gimp-selection-all image)
  (gimp-image-add-layer image frame 0)
  (if (= usebackgnd FALSE)
    (gimp-edit-fill frame BACKGROUND-FILL)
    (gimp-edit-clear frame)
    )
  (gimp-context-set-background '(255 255 255))
  (gimp-selection-layer-alpha drawable)
  (gimp-edit-fill frame BACKGROUND-FILL)
  (gimp-drawable-set-visible frame FALSE)
  (gimp-drawable-set-visible drawable FALSE)
  (set! count 0)
  (while (< count pframes)
    (script-fu-fireanim-doit image frame drawable xoffs yoffs usebackgnd)
    (set! count (+ count 1))
    )
  (set! larray (cons-array (+ nframes oframes 1)))
  (set! count 1)
  (while (<= count (+ nframes oframes))
    (script-fu-fireanim-doit image frame drawable xoffs yoffs usebackgnd)
    (set! newlayer (car (gimp-layer-copy frame TRUE)))
    (gimp-image-add-layer image newlayer 0)
    (script-fu-fireanim-prep image newlayer drawable gradient)
    (if (= usebackgnd TRUE)
      (begin
        (set! bglayer (car (gimp-layer-copy bgcopy TRUE)))
        (gimp-image-add-layer image bglayer 1)
        (gimp-drawable-set-visible bglayer TRUE)
        (gimp-drawable-set-visible newlayer TRUE)
        (set! newlayer (car (gimp-image-merge-visible-layers image 2)))
        )
      )
    (aset larray count newlayer)
    (gimp-drawable-set-name newlayer (string-append "Frame "
                                                    (number->string count) " ("
                                                    (number->string framerate) "ms) (replace)"
                                                    ))
    (gimp-drawable-set-visible newlayer FALSE)
    (set! count (+ count 1))
    )
  (gimp-drawable-set-visible drawable FALSE)
  (set! count 1)
  (while (<= count oframes)
    (set! opac (* 100 (- 1.0 (/ count (+ oframes 1)))))
    (set! framea (aref larray count))
    (set! frameb (aref larray (+ count nframes)))
    (gimp-drawable-set-visible framea TRUE)
    (gimp-drawable-set-visible frameb TRUE)
    (gimp-layer-set-opacity frameb opac)
    (set! framea (car (gimp-image-merge-visible-layers image 2)))
    (aset larray count framea)
    (gimp-drawable-set-visible framea FALSE)
    (set! count (+ count 1))
    )
  (set! count 1)
  (while (<= count nframes)
    (set! framea (aref larray count))
    (gimp-drawable-set-visible framea TRUE)
    (set! count (+ count 1))
    )
  (gimp-image-set-active-layer image framea)
  (gimp-image-remove-layer image drawable)
  (gimp-image-remove-layer image frame)
  (if (= usebackgnd TRUE)
    (gimp-image-remove-layer image bgcopy)
    )
  (gimp-display-new image)
  (gimp-selection-none image)
  (gimp-selection-none origimage)
  (gimp-image-undo-enable image)
  (gimp-displays-flush)
  )

(script-fu-register
"script-fu-fireanim"
"<Image>/Script-Fu/Animators/FireAnim"
"FireAnim"
"Vidar Madsen <vidar@prosalg.no>"
"Vidar Madsen"
"16. March 2001"
"RGBA"
SF-IMAGE "Input Image" 0 ;gds
SF-DRAWABLE "Input Drawable" 0 ;gds
SF-ADJUSTMENT "# of frames" '(15 2 255 1 1 0 1) ;gds
SF-ADJUSTMENT "Overlap frames" '(6 0 255 1 1 0 1) ;gds
SF-ADJUSTMENT "Prep frames" '(15 0 255 1 1 0 1) ;gds
SF-GRADIENT "Gradient" "Incandescent" ;gds
SF-ADJUSTMENT "Framerate (ms)" '(50 1 1000 10 10 0 1) ;gds
SF-ADJUSTMENT "Angle (Degrees)" '(0 0 360 .1 .1 1 1) ;gds
SF-ADJUSTMENT "Distance" '(2 0 1000 1 1 0 1) ;gds
SF-TOGGLE "Use background?" FALSE
SF-DRAWABLE "Background" 0
)
I mam pytanie gdzie to wkleić, żeby mieć dodatkową opcje w Script-Fu?

Możesz zarobić i spełnić swoje marzenia. Kliknij i zobacz.
Zapisane

Ziomioslaw
Administrator

Reputacja: 35 Offline Offline

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


Cyklista Apokalipsy


Zobacz profil
« Odpowiedz #1 : 11.11.2007, 21:46:20 »

Mistrzu coś cienko szukałeś...
http://gimp.wikidot.com/skrypty:script-fu

Po za tym, dział był zły.
Zapisane

mtx
Użytkownik

Reputacja: 3 Offline Offline

Płeć: Kobieta
GIMP: 2.4
JID: mtx@aqq.eu
Wiadomości: 28
Galeria Użytkownika


Anioł deptany


Zobacz profil WWW
« Odpowiedz #2 : 11.11.2007, 23:40:40 »

Cytuj
Wystąpił błąd podczas wykonywania
(script-fu-fireanim 17 108 15 6 15 "Incandescent" 50 0 2 FALSE 108)

Error: set!: unbound variable: width
Zapisane
Strony: [1]
Drukuj
Polskie Forum Użytkowników GIMP-aGIMPPomocna dłoń (Moderatorzy: snufkin, RRH)Wątek: Jak dodać nową opcje do Scriptu-Fu??
Skocz do:  


Kanał IRC #GIMP-PL
GIMP .Edu .pl
GIMP .Edu .pl
GIMP 
WIKI
dodajdo