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
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 😉