Inicio > develop, unix/linux > Resize Multiple Images

Resize Multiple Images

lunes, 20 de octubre de 2008 Dejar un comentario Ir a comentarios

Resize Multiple Images

En mi caso tengo que cambir el tamaño de mas de 1,000 fotografias asi que si utilizo gimp y las escalo cada una no es una buena solución.

Necesitas ImageMagick y Bash.

Subfolders:

script.sh:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
# fotos
IFS=$'\t\n'; # Algunas fotos puede que tengan espacios
for i in `ls`; do
    for j in `ls $i `; do # fotos/098-001/ fotos/098-002/ fotos/097-001/ etc...
    if [ "$j" = "Thumbs.db"  ]; then  # garbage file on win32
        echo "Nothing to do..."
    elif [ "$j" = "script.sh" ]; then # this script file :D
        echo "Nothing to do..."
    else
        echo "Working ..." # do the job
        #convert "$i/$j" -resize 500 "$i/new_$j"
        #mv "$i/new_$j" "$i/$j"
        mogrify -resize 500 "$i/$j"
    fi
    done
done

Ahora todas las imagenes tienen width: 500.

Ahora supongamos que se tienen multiples sub directorios, puedes utilizar este script:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
IFS=$'\t\n'
EXTS=( jpg gif png JPG GIF PNG )
for EXT in ${EXTS[@]};
do
	for f in `find . -name "*.$EXT" -type f`;
	do
		dir=`dirname $f`
		ff=`basename $f`
		echo "Working ..."
		#convert "$f" -resize 500 "$dir/new_$ff"
		#mv "$dir/new_$ff" "$f"
                mogrify  -resize 500 "$f"
	done
done

[thanks for the advice CyX]

Categories: develop, unix/linux Tags: , ,
  1. CyX
    domingo, 16 de noviembre de 2008 a las 16:57 | #1
    Surfing Opera 9.60 Opera 9.60 on GNU/Linux GNU/Linux

    Why not use ‘mogrify’ instead of convert+mv?

  2. nametaken
    martes, 21 de julio de 2009 a las 13:25 | #2
    Surfing Firefox 3.0.11 Firefox 3.0.11 on Ubuntu Ubuntu

    thanks dude

  1. sábado, 5 de junio de 2010 a las 11:08 | #1

Switch to our mobile site