GIMP Script-fu

Artifact [20822a4275]
Login

Artifact 20822a427539f2b939244e46628777e6741d5e81:


; This program is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License version 2 or higher
; as published by the Free Software Foundation.

(define (script-fu-sg-process-jpegs-in-folder directory quality)
  (let type-loop ((patterns '(".jpg" ".JPG" ".jpeg" ".JPEG")))
    (unless (null? patterns)
      (let loop ((files (cadr (file-glob (string-append directory 
                                                        DIR-SEPARATOR 
                                                        "*"
                                                        (car patterns) )
                                         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))) )
            (file-jpeg-save RUN-NONINTERACTIVE 
                            image 
                            layer
                            filename 
                            filename 
                            (/ quality 100) ; quality
                            0 ; smoothing 
                            1 ; optimize 
                            1 ; progressive 
                            "" ; comment 
                            0 ; subsmp (0-4)
                            1 ; baseline 
                            0 ; restart 
                            0 ;dct 
                            )
            (gimp-image-delete image)
            )
          (loop (cdr files)) ))
      (type-loop (cdr patterns)) )))
      
(script-fu-register "script-fu-sg-process-jpegs-in-folder"
  "Process JPEGs..."
  "Process JPEGs files in folder saving with Quality = 30"
  "Saul Goode"
  "Saul Goode"
  "June 2012"
  ""
  SF-DIRNAME    "Directory"    "" 
  SF-ADJUSTMENT "Quality (%)" '(30 10 100 1 10 0 0) )
  
(script-fu-menu-register "script-fu-sg-process-jpegs-in-folder"
  "<Image>/Filters/Misc" )