&rfx_sendmsg ( qq{ (let* ((input-file (string-append "$curtmpdir" DIR-SEPARATOR "$in")) (image (car (gimp-file-load RUN-NONINTERACTIVE input-file input-file))) (layer (car (gimp-image-get-active-layer image))) ) (let ((retinex-layer (car (gimp-layer-copy layer TRUE))) (width (car (gimp-image-width image))) (height (car (gimp-image-height image))) (edge-layer 0) ) (gimp-image-add-layer image retinex-layer 0) (plug-in-retinex RUN-NONINTERACTIVE image retinex-layer 16 3 0 0.1) (gimp-layer-set-mode retinex-layer VALUE-MODE) (set! edge-layer (car (gimp-layer-copy layer TRUE))) (gimp-image-add-layer image edge-layer 0) (let ((temp-layer (car (gimp-layer-copy retinex-layer TRUE)))) (gimp-image-add-layer image temp-layer 0) (set! edge-layer (car (gimp-image-merge-down image temp-layer EXPAND-AS-NECESSARY))) ) (let ((temp-layer (car (gimp-layer-copy layer TRUE))) (buffer "") (mask 0) ) (gimp-image-add-layer image temp-layer 0) (set! buffer (car (gimp-edit-named-cut temp-layer "buffer"))) (set! mask (car (gimp-layer-create-mask retinex-layer 0))) (gimp-layer-add-mask retinex-layer mask) (gimp-floating-sel-anchor (car (gimp-edit-named-paste mask buffer TRUE))) (gimp-buffer-delete buffer) (gimp-threshold mask 36 255) (plug-in-gauss RUN-NONINTERACTIVE image mask (* 0.01 width) (* 0.01 width) 0) (set! buffer (car (gimp-edit-named-copy mask "buffer"))) (set! mask (car (gimp-layer-create-mask edge-layer 0))) (gimp-layer-add-mask edge-layer mask) (gimp-floating-sel-anchor (car (gimp-edit-named-paste mask buffer TRUE))) (gimp-buffer-delete buffer) ) (plug-in-gauss RUN-NONINTERACTIVE image edge-layer 2.0 2.0 0) (plug-in-laplace RUN-NONINTERACTIVE image edge-layer) (plug-in-despeckle RUN-NONINTERACTIVE image edge-layer 1 1 0 255) (plug-in-vpropagate RUN-NONINTERACTIVE image edge-layer 6 ; propagate-mode 3 ; propagating-channel 0.4 ; propagating-rate 15 ; direction-mask 0 ; lower-limit 255 ; upper-limit ) (gimp-layer-set-opacity edge-layer 80) (gimp-desaturate-full edge-layer 1) ) (gimp-image-flatten image) (rfx-save-frame image "$out") ) } );