(define (script-fu-sg-zibbafy directory) (let loop ((files (cadr (file-glob (string-append directory DIR-SEPARATOR "*.bmp") 1)))) (unless (null? files) (let* ((filename (car files)) (image (car (gimp-file-load RUN-NONINTERACTIVE filename filename))) (layer (car (gimp-image-get-active-layer image))) (mask (car (gimp-layer-create-mask layer ADD-COPY-MASK))) (half-width (/ (car (gimp-drawable-width layer)) 2)) (height (car (gimp-drawable-height layer))) ) (gimp-layer-add-mask layer mask) (gimp-invert mask) (gimp-drawable-offset mask FALSE OFFSET-TRANSPARENT (- half-width) 0) (gimp-layer-remove-mask layer MASK-APPLY) (gimp-image-resize image half-width height 0 0) (gimp-layer-resize-to-image-size layer) (let ((newname (string-append (car (strbreakup filename ".bmp")) ".png" ))) (gimp-file-save RUN-NONINTERACTIVE image layer newname newname) ) (gimp-image-delete image) (loop (cdr files)) )))) (script-fu-register "script-fu-sg-zibbafy" "Zibbafy..." "Process BMP files in folder using half of image as mask" "Saul Goode" "Saul Goode" "Feb 2012" "" SF-DIRNAME "Directory" "" ) (script-fu-menu-register "script-fu-sg-zibbafy" "/Filters/Misc" )