joeylib/scripts/exportXCFLayers.scm

67 lines
2.1 KiB
Scheme

(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" "<Image>/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))
)
)
)
)