; Version 1.0 02.10.2014 First Go
; see http://gimpchat.com/viewtopic.php?f=18&t=11178&start=0
;
(define selffilename "\n- kp24_travis.scm")

; this is the main routine
(define (script-fu-kp24_travis image drawable)
  (let* (
         (decomp_image 0)
         (decomp_layers '())
         (recomp_image 0) (recomp_drawable 0)
         (decompRgb_image 0)
        )
       ; Decompose image to LAB layers in a new image
       (set! decomp_image (car (plug-in-decompose RUN-NONINTERACTIVE image drawable "LAB" TRUE)))      
;       (gimp-display-new decomp_image)
       (set! decomp_layers (gimp-image-get-layers decomp_image))

       ; Switch off visiblity of the L layer
       (gimp-drawable-set-visible (vector-ref (car (cdr decomp_layers)) 0) FALSE)
       
       ; Fill the A layer with mid-grey
       (gimp-context-set-foreground '(128 128 128))       
       (gimp-edit-bucket-fill (vector-ref (car (cdr decomp_layers)) 1) FG-BUCKET-FILL NORMAL-MODE 100 255 FALSE 0 0)

       ; Auto-stretch the contrast of the B layer
       (plug-in-c-astretch RUN-NONINTERACTIVE decomp_image (vector-ref (car (cdr decomp_layers)) 2))
       
       ; Compose resulting image into a new RGB image
       (set! recomp_image (car (plug-in-drawable-compose RUN-NONINTERACTIVE decomp_image (vector-ref (car (cdr decomp_layers)) 0) (vector-ref (car (cdr decomp_layers)) 1) (vector-ref (car (cdr decomp_layers)) 2) (vector-ref (car (cdr decomp_layers)) 0) "LAB")))
       (set! recomp_drawable (car (gimp-image-get-active-layer recomp_image)))
;       (gimp-display-new recomp_image)

       ; Decompose resulting image into RGB layers
       (set! decompRgb_image (car (plug-in-decompose RUN-NONINTERACTIVE recomp_image recomp_drawable "RGB" TRUE)))      
       (gimp-display-new decompRgb_image)      
       (set! decomp_layers (gimp-image-get-layers decompRgb_image))
 
       ; Remove the Red and Green layers
       (gimp-image-remove-layer decompRgb_image (vector-ref (car (cdr decomp_layers)) 0))
       (gimp-image-remove-layer decompRgb_image (vector-ref (car (cdr decomp_layers)) 1))
       
       (gimp-image-delete recomp_image)
       (gimp-displays-flush)
  )
)

(script-fu-register "script-fu-kp24_travis"
                    _"Travis..."
                    (string-append "Do stuf for Travis" selffilename)
                    "Travis"
                    "Travis"
                    "02/10/2014"
                    "RGB*"
                    SF-IMAGE "Input Image" 0
                    SF-DRAWABLE "Input Drawable" 0
)

(script-fu-menu-register "script-fu-kp24_travis" "<Image>/contributed/")
