;; --------------------------------------------------------- ;; * ;; * Script-Fu Reduire les couleurs v1.1 ;; * ;; * pour GIMP 2.0.x ;; * ;; * ;; * abcdugimp.free.fr 06/10/2004 ;; * ;; --------------------------------------------------------- ;; Vous êtes libre d'utiliser ce script comme bon vous semble ;; feel free to use it for whatever you like. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (define (script-fu-reduire-color-2 image drawable seuil inc p ) ;; init generale (let* ( (x 0) (y 0) ;; conserver les outils dans des variables (old-bg (car (gimp-palette-get-background))) (old-fg (car (gimp-palette-get-foreground))) ;; connaitre les dimensions de l'image (image-width (car (gimp-image-width image))) (image-height (car (gimp-image-height image))) ;; variable déterminant si il y a une sélection (var-select (car (gimp-selection-is-empty image))) (layer (car (gimp-layer-new-from-drawable drawable image))) ) ;; debut d'historique d'annulation (gimp-image-undo-group-start image) (if (= var-select TRUE) ;; test si il y a selection (begin ;; aucune selection n'a été faite ) (begin ;; une selection a ete faite (set! canal (car (gimp-selection-save image))) ;; canal stockant la selection originelle de l'utilisateur ) ) (gimp-image-add-layer image layer -1) ;;----------------------------------------------------- (while (< y image-height) (if (= p TRUE) (begin (set! m (string-append "y=" (number->string y) "/" (number->string image-height))) (gimp-message m) ) ) (cond (while (< x image-width) (set! color (car (gimp-image-pick-color image layer x y 0 0 0))) (gimp-by-color-select layer color seuil REPLACE TRUE FALSE 0 FALSE) (gimp-palette-set-foreground color) (gimp-edit-fill layer 0) (set! x (+ x inc)) ) ) (set! y (+ y inc)) ) ;;----------------------------------------------------- (gimp-selection-none image) (if (= var-select TRUE) ;; test si il y AVAIT selection (begin ;; aucune selection n'avait été faite ) (begin ;; une selection avait été faite (remettre la selection de l'utilisateur) (gimp-selection-load canal) ;; mask de canal vers selection (gimp-image-remove-channel image canal) ;; supprimer le mask de canal ) ) ;; mise a jour ;; fin d'historique d'annulation (gimp-image-undo-group-end image) (gimp-displays-flush) ;;remettre toutes les outils comme au debut ;;(gimp-palette-set-background old-bg) ;;(gimp-palette-set-foreground old-fg) );; fin du let );; fin du define ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Fin du Script ;; registre (script-fu-register "script-fu-reduire-color-2" "/Script-Fu/Utils/Reduire les couleurs" "Diminue sensiblement le nombre de couleur et la precision de l'image. Plus le seuil est eleve, moins il y a de couleur. L'increment doit idealement etre regle en fonction de la taille de l'image, essayez un rapport de 1/10 a 1/20. Attention un increment tres faible sur une tres grande image engendrera des lenteurs. abcdugimp.free.fr" "Expression" "Free" "03/10/2004" "RGB* GRAY* INDEXED*" SF-IMAGE "Image" 0 SF-DRAWABLE "Drawable" 0 SF-ADJUSTMENT "Seuil de selection" '(50 2 255 1 10 0 0) SF-ADJUSTMENT " Increment du scan" '(20 1 500 1 10 0 0) SF-TOGGLE "Voir la progression dans la console" FALSE )