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, la Tecnología y el Conocimiento Libre en general. La mayoría de los artículos que aparezcan en este blog estarán relacionados en estos temas, pero tampoco tiene que ser siempre así. Si quieres saber más mira
24 de julio, 2008 a las 15:11
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 19:31
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 😉