(script-fu-register "script-fu-export-joeylib" ;func name "Export to JoeyLib" ;menu label "Exports layers as individual 16 color PNGs." ;description "Scott Duensing" ;author "Copyright 2020 Scott Duensing" ;copyright notice "May 6, 2020" ;date created "" ;image type that the script works on SF-FILENAME "XCF File" "input.xcf" ;default parameters ) (script-fu-menu-register "script-fu-export-joeylib" "/File/Create/JoeyLib") (define (script-fu-export-joeylib infile) (let* ( (image (car (gimp-xcf-load 1 infile infile))) (basename (car (gimp-image-get-filename image))) (count 1) ) (when (string=? basename "") (set! basename (string-append (car (gimp-temp-name "")) (car (gimp-image-get-name image)) ) ) ) (let loop ( (layers (vector->list (cadr (gimp-image-get-layers image)))) ) (unless (null? layers) (gimp-edit-copy (car layers)) (let ( (img (car (gimp-edit-paste-as-new))) (new-name (string-append basename "-DoNtEvErDoThIs-" (number->string count) ".png" ) ) ) (gimp-image-convert-indexed img NO-DITHER MAKE-PALETTE 16 FALSE FALSE "") (set! count (+ count 1)) (file-png-save 1 img (aref (cadr (gimp-image-get-layers img)) 0) new-name new-name TRUE 9 TRUE TRUE TRUE TRUE TRUE ) (gimp-image-delete img) ) (loop (cdr layers)) ) ) ) )