(define (script-fu-simple-drop-shadow image drawable shadow-x shadow-y shadow-color shadow-opacity) (let* ((shadow-opacity (max (min shadow-opacity 100) 0)) (old-bg (car (gimp-palette-get-background))) (shadow-layer 0)) (gimp-undo-push-group-start image) ; Create new layer and add to the image (set! shadow-layer (car (gimp-layer-copy drawable 1))) (gimp-image-add-layer image shadow-layer -1) (gimp-layer-set-name shadow-layer "Shadow") ; Copy layer, lower it below the original, translate, select opacity (gimp-image-lower-layer image shadow-layer) (gimp-layer-translate shadow-layer shadow-x shadow-y) (gimp-layer-set-opacity shadow-layer shadow-opacity) ; Fill with shadow color, but keep transparency. (gimp-layer-set-preserve-trans shadow-layer 1) (gimp-palette-set-background shadow-color) (gimp-edit-fill shadow-layer 1) ; Cleanup (gimp-palette-set-background old-bg) (gimp-image-set-active-layer image drawable) (gimp-undo-push-group-end image) (gimp-displays-flush))) (script-fu-register "script-fu-simple-drop-shadow" _"<Image>/Script-Fu/Shadow/Drop-Shadow (simple)..." "Add a simple drop-shadow of the alpha-channel" "Simon Budig <simon@gimp.org>" "Simon Budig" "2001/4/2" "RGBA GRAYA" SF-IMAGE "Image" 0 SF-DRAWABLE "Drawable" 0 SF-ADJUSTMENT _"Offset X" '(8 -4096 4096 1 10 0 1) SF-ADJUSTMENT _"Offset Y" '(8 -4096 4096 1 10 0 1) SF-COLOR _"Color" '(0 0 0) SF-ADJUSTMENT _"Opacity" '(75 0 100 1 10 0 0))