; stamp border ; ; Original version : ; 2000 MARIN Laetitia ; titix@amin.unice.fr ; Version 0.2 Raymond Ostertag 2004/09 ; - Ported to Gimp2 ; - Changed menu entry ;; horizontal alignement of circles (define (iter-cercle-x nb-iter img x y ) (if (> nb-iter 0) (begin (gimp-ellipse-select img x y 8 8 CHANNEL-OP-SUBTRACT FALSE 0 0) (iter-cercle-x (- nb-iter 1) img (+ x 12) y)))) ;; vertical alignement of circles (define (iter-cercle-y nb-iter img x y ) (if (> nb-iter 0) (begin (gimp-ellipse-select img x y 8 8 CHANNEL-OP-SUBTRACT FALSE 0 0) (iter-cercle-y (- nb-iter 1) img x (+ y 12))))) (define (script-fu-stamp img drawable) (let* ((old-bg-color (car (gimp-palette-get-background))) (old-fg-color (car (gimp-palette-get-foreground))) (sizeX (car (gimp-image-width img))) (sizeY (car (gimp-image-height img)))) (gimp-image-undo-disable img) ;; selection (gimp-selection-all img) (gimp-image-resize img (+ sizeX 20) (+ sizeY 20) 10 10) (let ((decor (car (gimp-layer-new img (+ sizeX 20) (+ sizeY 20) RGBA-IMAGE "stamp decor" 100 NORMAL-MODE)))) ;; dentelle (gimp-image-add-layer img decor 0) (gimp-edit-clear decor) ;; selection (gimp-selection-invert img) (gimp-edit-clear decor) (let* ((nb-cercles-x (/ (- (+ sizeX 20) 4) 12)) (nb-cercles-y (/ (- (+ sizeY 20) 4) 12)) (taille-reste-x (- (+ sizeX 20) (+ (* 12 nb-cercles-x) 4))) (taille-reste-y (- (+ sizeY 20) (+ (* 12 nb-cercles-y) 4)))) (iter-cercle-x nb-cercles-x img (+ (/ taille-reste-x 2) 2) -4) (iter-cercle-x nb-cercles-x img (+ (/ taille-reste-x 2) 2) (- (+ sizeY 20) 4)) (iter-cercle-y nb-cercles-y img -4 (+ (/ taille-reste-y 2) 2)) (iter-cercle-y nb-cercles-y img (- (+ sizeX 20) 4) (+ (/ taille-reste-y 2) 2))) ;; fg fulling (gimp-edit-bucket-fill decor FG-BUCKET-FILL NORMAL-MODE 100 0 FALSE 0 0)) (gimp-selection-clear img) ;; bg background (let ((back (car (gimp-layer-new img (+ sizeX 20) (+ sizeY 20) RGBA-IMAGE "black back" 100 NORMAL-MODE)))) (gimp-image-add-layer img back 2) (gimp-edit-fill back BACKGROUND-FILL)) (gimp-palette-set-foreground old-fg-color) (gimp-palette-set-background old-bg-color) (gimp-image-undo-enable img) (gimp-displays-flush))) (script-fu-register "script-fu-stamp" "/Script-Fu/Decor/Stamp Border..." "stamp border imitation" "MARIN Laetitia" "MARIN Laetitia" "Fev 2000" "" SF-IMAGE "Image to stamp" 0 SF-DRAWABLE "Drawable to stamp" 0)