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




Open Free Blog es un blog personal, creado por Luis Miguel Fuertes, cuyos principales intereses están relacionados con el Software Libre o Abierto, la Tecnología e Internet y el Conocimiento Libre en general. Es por eso que la mayoría de los artículos que aparezcan en este blog estarán relacionados con estos temás. Si quieres saber más mira
24 de Julio, 2008 a las 3:11 pm
Siento fastidiarte pero:
for imagen in *.jpg;do convert -resize “50%x50%” $imagen RES$imagen;done
Hace lo mismo
Convert viene con ImageMagick
24 de Julio, 2008 a las 7:31 pm
No me fastidias hombre, pero eso ya lo sabía…, solo que el convert no es, por decirlo fino, multiplataforma, y en cambio, ese escript si funciona en varios sistemas operativos.
Pero mira, me parece muy bien que lo añadas, pues a más de uno le puede ser muy útil, así que gracias por la aportación apañero