(define (script-fu-arrondi image drawable epaisseur finesse bords reajust ) (let* ( (copy) ;on définit une variable à utiliser (largeur (car (gimp-drawable-width drawable))) ;on simplifie un nom de variable (hauteur (car (gimp-drawable-height drawable))) ;idem (nlargeur (+ largeur 200)) ;on calcule la nouvelle largeur du calque (nhauteur (+ hauteur 200)) ;__ _______ __ ________ hauteur __ ______ ) (gimp-image-undo-group-start image) (set! copy (car (gimp-layer-copy drawable 0))) ;on copie le calque (gimp-layer-set-visible drawable 0) ;on le rend visible (gimp-image-add-layer image copy 0) ;on ajoute la copie du calque a l'image (if (= bords TRUE) ;SI bords est coché (gimp-layer-resize copy nlargeur nhauteur 50 50)) ;on redimensionne l'image (plug-in-gauss-rle2 RUN-NONINTERACTIVE image copy epaisseur epaisseur) ;le flou (gimp-levels copy 4 119 (- 136 finesse) 1 0 255) ;les niveaux qui s'adaptent en fonction de finesse (if (= reajust TRUE) ;SI reajust est coché (plug-in-autocrop-layer RUN-NONINTERACTIVE image copy)) ;on lance un découpage auto du calque (gimp-image-set-active-layer image copy) ;on choisit la copie comme calque actif (gimp-layer-set-name copy "Arrondi") ;on appelle la copie Arrondi (gimp-image-undo-group-end image) (gimp-displays-flush))) ;on affiche le résultat du script (script-fu-register "script-fu-arrondi" "Arrondi" "Arrondi la forme du calque en cours." "Baptiste - www.aozeo.com" "GPL" "29/10/05" "RGB* GRAY*" SF-IMAGE "image" 0 SF-DRAWABLE "drawable" 0 SF-ADJUSTMENT "Taille de l'arrondi" '(15 0 1000 1 5 0 1) SF-ADJUSTMENT "Finesse" '(2 1 17 1 3 0 0) SF-TOGGLE "Arrondir tous les bords" TRUE SF-TOGGLE "Réajuster la taille du calque" FALSE ) (script-fu-menu-register "script-fu-arrondi" "/Script-Fu/Arrondi")