Estoy trabajando en un catálogo de productos con cientos de imágenes de alta resolución y diferentes tamaños, separadas en decenas de directorios.
Podría haber utilizado la extensión
GD2 de
PHP, pero no quería subir los archivos a ftp.
Pensé en utilizar la poderosa acción "
batch process" de
GIMP, pero no me permite añadir recursivamente desde un directorio todos los archivos contenidos en subdirectorios, por otro lado
Photoshop y su procesamiento por lotes no me permite ser selectivo en el "aspect ratio".
Así que decidí crear un shellscript que utilizando el comando
convert de
Imagemagick realizara la tarea. Me puse manos a la obra y este fue el resultado:
Código:
#!/bin/bash
# Script creado por Arturo Peraza ([email protected])
# Este script esta licenciado bajo licencia GPL
# Avisos al usuario
echo "Este script generará un subdirectorio de respaldo llamado tmp"
echo "Los archivos originales serán copiados en el y si todo sale bien seran eliminados"
echo "Si desea conservar los archivos originales copielos en otra ubicación antes de continuar"
# Pausa para que el usuario lea los avisos
read -p "'Presione Intro para continuar'"
# Mirar si existe el directorio tmp y si no crearlo
if ls | grep tmp
then
echo "Creando respaldos..."
else
mkdir tmp
echo "Creando respaldos..."
fi
# Copiar todos los archivos al directorio tmp y redimensionar los originales
for i in `ls *.jpg` ; do
cp $i tmp/$i
convert $i -resize 350x350 $i
done
clear
# Pausa para que el usuario revise que todo salio bien
read -p “'Revise los archivos resultantes y presione Intro para continuar'”
clear
echo "Los siguientes archivos fueron redimensionados con exito:"
# Mirar si los respaldos fueron creados y en su caso eliminarlos
if ls tmp | grep jpg
then
rm -rf tmp
exit
else
echo "No hay respaldos, Probablemente ocurio algun error"
echo "Revise los archivos y permisos e intentelo de nuevo"
fi
Lo posteo aquí para quien pueda resultarle útil y por supuesto, aprovechando la generosidad de los foreros más avanzados si tienen alguna sugerencia para mejorar su funcionalidad o cualquier cosa que sea más facil o que se haga de manera más correcta también la compartan con nosotros.
Cualquier crítica será bienvenida, solamente sean benévolos si cometí muchos errores de principiante
Saludos