(define (script-fu-uwcorrect img tdrawable color density whitebalance colorenhance)( let* ( (width (car (gimp-drawable-width tdrawable))) (height (car (gimp-drawable-height tdrawable))) (layer-one (car (gimp-layer-copy tdrawable 0))) (layer-two (car (gimp-layer-new img width height RGB-IMAGE "gray" 100 COLOR-MODE))) (layer-three (car (gimp-layer-new img width height RGB-IMAGE "color" 100 MULTIPLY-MODE))) (graylayer) (colorlayer) (finallayer) ) (gimp-context-push) (gimp-image-undo-group-start img) (gimp-palette-set-background '(128 128 128)) (gimp-palette-set-foreground color) (gimp-image-add-layer img layer-one -1) (gimp-image-add-layer img layer-two -1) (gimp-drawable-fill layer-two BACKGROUND-FILL) (gimp-layer-set-visible tdrawable 0) (set! graylayer (car (gimp-image-merge-visible-layers img 0))) (gimp-image-add-layer img layer-three -1) (gimp-drawable-fill layer-three FOREGROUND-FILL) (set! colorlayer (car (gimp-image-merge-visible-layers img 0))) (gimp-layer-set-mode colorlayer SCREEN-MODE) (gimp-layer-set-opacity colorlayer density) (gimp-layer-set-visible tdrawable 1) (set! finallayer (car (gimp-image-merge-visible-layers img 0))) (if (= whitebalance TRUE) (gimp-levels-stretch finallayer)) (if (= colorenhance TRUE) (plug-in-color-enhance RUN-NONINTERACTIVE img finallayer)) (gimp-displays-flush) (gimp-image-undo-group-end img) (gimp-context-pop) )) (script-fu-register "script-fu-uwcorrect" _"_UW-correct..." "Adds missing colors of underwater pictures" "Pascal Pellmont" "(c) 2005, Pascal Pellmont" "12/12/2005" "RGB*" SF-IMAGE "Input image" 0 SF-DRAWABLE "Input drawable" 0 SF-COLOR "Missing Colors" '(255 0 0) SF-ADJUSTMENT "Density" '(50 0 100 1 10 1 1) SF-TOGGLE "Auto White Balance" TRUE SF-TOGGLE "Auto Color Enhance" FALSE ) (script-fu-menu-register "script-fu-uwcorrect" _"/Script-Fu/Underwater") (define (script-fu-uwquickcorrect img tdrawable)( let* ( (width (car (gimp-drawable-width tdrawable))) (height (car (gimp-drawable-height tdrawable))) (layer-one (car (gimp-layer-copy tdrawable 0))) (layer-two (car (gimp-layer-new img width height RGB-IMAGE "gray" 100 COLOR-MODE))) (layer-three (car (gimp-layer-new img width height RGB-IMAGE "color" 100 MULTIPLY-MODE))) (graylayer) (colorlayer) (finallayer) ) (gimp-context-push) (gimp-image-undo-group-start img) (gimp-palette-set-background '(128 128 128)) (gimp-palette-set-foreground '(255 0 0)) (gimp-image-add-layer img layer-one -1) (gimp-image-add-layer img layer-two -1) (gimp-drawable-fill layer-two BACKGROUND-FILL) (gimp-layer-set-visible tdrawable 0) (set! graylayer (car (gimp-image-merge-visible-layers img 0))) (gimp-image-add-layer img layer-three -1) (gimp-drawable-fill layer-three FOREGROUND-FILL) (set! colorlayer (car (gimp-image-merge-visible-layers img 0))) (gimp-layer-set-mode colorlayer SCREEN-MODE) (gimp-layer-set-opacity colorlayer 50) (gimp-layer-set-visible tdrawable 1) (set! finallayer (car (gimp-image-merge-visible-layers img 0))) (gimp-levels-stretch finallayer) (gimp-displays-flush) (gimp-image-undo-group-end img) (gimp-context-pop) )) (script-fu-register "script-fu-uwquickcorrect" _"_UW-Quick-correct" "Adds missing colors of underwater pictures (with default values)" "Pascal Pellmont" "(c) 2005, Pascal Pellmont" "12/12/2005" "RGB*" SF-IMAGE "Input image" 0 SF-DRAWABLE "Input drawable" 0 ) (script-fu-menu-register "script-fu-uwquickcorrect" _"/Script-Fu/Underwater")