rendered paste body(define (script-fu-save-with-copy image drawable)
(let* (
(dup-image (car (gimp-image-duplicate image)))
(layers (gimp-image-get-layers dup-image))
(background (aref (cadr layers) (- (car layers) 1)))
(filename (car (gimp-image-get-filename image)))
)
(gimp-xcf-save 0 image drawable filename filename) ;save the XCF
;now the PNG copy
(gimp-drawable-set-visible background FALSE)
;;clip to image behaves weirdly
;; (set! drawable (car (gimp-image-merge-visible-layers dup-image CLIP-TO-IMAGE)))
(set! drawable (car (gimp-image-merge-visible-layers dup-image CLIP-TO-BOTTOM-LAYER)))
(set! filename (strbreakup filename "."))
(if (= (string-length (car filename)) 0)
(set! filename "Untitled")
(begin
(if (or (= (strcmp (car (last filename)) "bz2") 0)
(= (strcmp (car (last filename)) "gz") 0))
(set! filename (butlast filename)))
(set! filename (unbreakupstr (butlast filename) "."))
)
)
(set! filename (string-append filename ".png"))
(file-png-save-defaults RUN-NONINTERACTIVE dup-image drawable filename filename)
(gimp-image-delete dup-image)
)
)
(script-fu-register "script-fu-save-with-copy"
"<Image>/File/Save with PNG copy"
"Saves XCF with a copy of the image in PNG format"
"Saul Goode, Jakub Steiner"
"Saul Goode, Jakub Steiner"
"2006-12-12"
"*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Layer" 0
)