Un directorio plagado de imágenes horizantales, verticales, grandes y más grandes dispuestas en subdirectorios y más subdirectorios.
Convertir todas las imágenes a un tamaño (area: base por altura) determinado, sin importar que sean horizontales, verticales, 16/9 o 4/3.
Utilizando el parámetro -resize de convert dentro un bash recursivo.
#!/bin/bash
sudo find $1 -name *.jpg |
while read FILENAME
do
DESTINATION="./Converted/"$FILENAME""
BASEDIR="`dirname "$DESTINATION"`"
echo $FILENAME
echo $DESTINATION
echo $BASEDIR
if [ ! -d "$BASEDIR" ]
then
mkdir -p "$BASEDIR"
fi
convert -quality 90 -resize '12000000@>' "$FILENAME" "$DESTINATION"
done
Para ejecutarlo:
./convert.sh Pictures/