(define (masque-luminosite image drawable zonessombres) ; Démarre un niveau de undo (gimp-image-undo-group-start image) (catch (gimp-message "Il y a eu une erreur.\nLe résultat n’est probablement pas celui attendu.\nVous pouvez annuler l’opération") (let* (; Crée un nouveau calque en copiant l’actuel (base (car (gimp-layer-new-from-drawable drawable image))) ) ; Ajoute le nouveau calque à l’image (gimp-image-add-layer image base -1) ; Ajoute un masque au nouveau calque avec une copie en niveau de gris (let* ((masque (car (gimp-layer-create-mask base ADD-COPY-MASK)))) ; Ajoute le masque à l’image (gimp-layer-add-mask base masque) ; Applique un flou gaussien de rayon 200 pixels (plug-in-gauss-iir2 RUN-NONINTERACTIVE image masque 200 200) ; Applique un niveau automatique sur le masque (gimp-levels-stretch masque) ; Inverse le masque si on veut avoir les zones sombres (if (= zonessombres TRUE) (begin ; Inversion du masque (gimp-invert masque) ; Définit le nom du nouveau masque (gimp-drawable-set-name base "Zones sombres") ) ; else ; Définit le nom du nouveau masque (gimp-drawable-set-name base "Zones lumineuses") ) ) ; Désactive l’édition du masque (gimp-layer-set-edit-mask base FALSE) ) ) ; Termine le niveau de undo (gimp-image-undo-group-end image) ) (define (script-fu-zoneslumineuses image drawable) (masque-luminosite image drawable FALSE) ) (script-fu-register "script-fu-zoneslumineuses" "/Script-Fu/Masque des zones lumineuses" "Crée un nouveau calque avec un masque filtrant les zones lumineuses" "Frédéric Bisson " "Frédéric Bisson" "2009-12-19" "RGB*, GRAY*" SF-IMAGE "Image en entrée" 0 SF-DRAWABLE "Calque en entrée" 0 ) (define (script-fu-zonessombres image drawable) (masque-luminosite image drawable TRUE) ) (script-fu-register "script-fu-zonessombres" "/Script-Fu/Masque des zones sombres" "Crée un nouveau calque avec un masque filtrant les zones sombres" "Frédéric Bisson " "Frédéric Bisson" "2009-12-19" "RGB*, GRAY*" SF-IMAGE "Image en entrée" 0 SF-DRAWABLE "Calque en entrée" 0 )