(define (my-duplicate-layer image layer) (let* ((dup-layer (car (gimp-layer-copy layer 1)))) (gimp-image-add-layer image dup-layer 0) dup-layer)) (define (script-fu-grumbel-vertical-anim image drawable steps) (gimp-undo-push-group-start image) (let ((step-width (/ (car (gimp-drawable-height drawable)) steps))) (while (> steps 1) (let ((new-layer (my-duplicate-layer image drawable))) (gimp-channel-ops-offset new-layer TRUE OFFSET-TRANSPARENT 0 step-width) (set! drawable new-layer)) (set! steps (- steps 1)))) (gimp-undo-push-group-end image) (gimp-displays-flush)) (script-fu-register "script-fu-grumbel-vertical-anim" "/Script-Fu/Grumbel/Vertical Anim" "Fire Plug-in, like the stuff used in some demos" "Ingo Ruhnke" "2001, Ingo Ruhnke" "Tue Aug 7 10:40:43 2001" "RGBA RGB INDEXED*" SF-IMAGE "Image" 0 SF-DRAWABLE "Drawable" 0 SF-VALUE "Steps" "10") ;; EOF ;;