All pastes #279060 Raw Edit

Unnamed

public text v1 · immutable
·published 2006-12-14 17:35 UTC
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
              )