Estos días me estaba haciendo falta cambiar el tamaño a un montón de fotos a la vez y no sabía como, así que me puse a investigar como hacerlo con mi programa de edición de imágenes favorito, el Gimp, el cual llevo usando desde hace bastante tiempo. La verdad es que Gimp es una opción realmente buena, que aunque muchos usuarios provenientes de otros programas similares comerciales lo vean extraño, es realmente potente, y por lo que además he podido hoy ver, realmente extensible.

Aunque he estado un ratito buscando, la mejor solución que he encontrado ha sido en este foro:

http://www.gimptalk.com/forum/script-fu-batch-resize-t9440.html

Ahí se podía acceder a conseguir un script, en concreto este:

http://www.gimpusers.de/dl/batch-resize-2.4.scm

Pero no me funcionaba bien, y en el propio foro he podido ver la correción que si funcionaba, que paso a pegar a continuación, para quien la quiera:

(define (script-fu-batch-scale-ratio globexp ratio)
  (define (resize-img n f)
   (let* ((fname (car f))
          (img (car (gimp-file-load 1 fname fname))))
       (let* (
             (drawable   (car (gimp-image-active-drawable img)))
             (cur-width  (car (gimp-image-width img)))
             (cur-height (car (gimp-image-height img)))
          (new-width  (* ratio cur-width))
          (new-height (* ratio cur-height))
             (new_ratio      (min (/ new-width cur-width)
                                         (/ new-height cur-height)))
             (width      (* new_ratio cur-width))
             (height     (* new_ratio cur-height))
          )

         (gimp-image-undo-disable img)
         (gimp-image-scale img width height)
         (gimp-file-save 1 img (car (gimp-image-get-active-drawable img))
                                        fname fname)
         (gimp-image-delete img)
      )
    )
    (if (= n 1) 1 (resize-img (- n 1) (cdr f)))
  )
  (let* ((files (file-glob globexp 0)))
     (resize-img (car files) (car (cdr files))))
)

(script-fu-register "script-fu-batch-scale-ratio"
          _"Batch Image Scale By Ratio"
          "Hey!"
          "Nicholas Herring and Richard Hirner (http://www.gimptalk.com/
           forum/topic/Script-fu-Batch-Resi-e-9440-1.html) & ADP (http:
           //www.adp-gmbh.ch/misc/tools/script_fu/ex_10.html), hello_
           earth"
          "2008, Nicholas Herring based on a script by Richard Hirner"
          "March 26, 2008"
          ""
          SF-STRING "Full path with wildcards" "C:\\Test\\*.jpg"
          SF-VALUE "Scaling ratio (min 0.01, max 1)" "0.50")
(script-fu-menu-register "script-fu-batch-scale-ratio"
          "/Xtns/Misc")

Luego este script, lo grabas en un archivo que se puede llamar también batch-resize-2.4.scm lo dejas caer en el directorio de share\gimp\2.0\scripts de tu gimp (en principio da igual en el sistema operativo que estés) y abres de nuevo tu Gimp, y ya lo debes de tener accesible en el menú de Misc (Miscelaneo).

Ahora ya puedes puedes seleccionar todas las imagenes de un directorio y escalarlas según un ratio, por ejemplo, si pones «0.50» las escalará a la mitad del tamaño. Espero que te sea tan útil como a mi.

Fichero para descarga: batch-resize-24.scm