Script en bash para redimensionar imágenes

| | Add comment | Trackbacks (0) | Previous

El script funciona de la siguiente forma:

 user@host:~$ script directorio 800x600

Donde:

script es el archivo que contiene este codigo y que guardamos en la carpeta bin

directorio es el directorio que contiene las imágenes que vamos a redimensionar

y 800x600 es el nuevo tamaño que vamos a asignar

 

Nota: este script no es recursivo, por lo tanto no toma las imágenes de los subdirectorios del directorio dado

 

#!/bin/bash

E_BADPARAMS=99
E_BADDIRECTORY=100

if [[ -z "$1" || -z "$2" ]]
then
    echo "Usage example: scriptname /home/user/Pictures -resize 800x600"
    exit $E_BADPARAMS
else
    dir=$1
    if [[ -d "$dir" || -d ./"$dir" ]]
    then
        size=$2
        if [[ $dir =~ .*[^/]$ ]]
        then
            dir=$dir/
        fi
        for file in "$dir"*.{jpg,JPG,png,PNG}
        do
            if [ -f "$file" ]
            then
                echo "Convirtiendo $file ..."
                convert "$file" -resize $size "$file".tmp
                mv "$file".tmp "$file"
                if [ -t "$file".tmp ]
                then
                    rm "$file".tmp
                fi
            fi
        done
    else
        echo "Bad directory."
        exit $E_BADDIRECTORY
    fi
fi

Comments

Add comment
 authimage