En servidores donde hay un gran trasiego de imágenes puede ser muy útil el instalar un sistema de compresión y optimización de imágenes en batch desde el servidor.
Para hacer la compresión de las imágenes vamos a utilizar jpegoptim para las imágenes jpeg y optipng para los png, otras opciones válidas para los png son pngcrush advancecomp.
La premisa principal del scrip es comprimir lo máximo posible sin pérdida de calidad.
Lo primero es instalar las aplicaciones:
apt-get install jpegoptim optipng |
apt-get install jpegoptim optipng
El script que utilizo para hacer la compresión es este, tened en cuenta que uso un find sin límite superior por lo que comprimirá todas las imágenes de la ruta indicada y de todas las rutas que estén por encima de ella.
p.e.:
comprimir_imagenes.sh /opt/imagenes
comprimirá las imágenes de /opt/imagenes y de /opt/imagenes/a, /opt/imagenes/a/1, /opt/imagenes/a/1/2, etc.
#!/bin/bash
echo " "
if [ ! -z "$1" ]
then
INIT_DIR=$1
find $INIT_DIR -type f -name "*.jpg" | xargs -I ARG jpegoptim -p -f ARG
find $INIT_DIR -type f -name "*.jpeg" | xargs -I ARG jpegoptim -p -f ARG
find $INIT_DIR -type f -name "*.png" | xargs -I ARG optipng -preserve -o7 ARG
else
echo ""
echo "Hay que indicar el directorio a partir del cual se quiere comprimir"
echo " "
echo "Formato:"
echo "./optimizar_imagenes.sh /var/directorio/"
fi
echo " " |
#!/bin/bash
echo " "
if [ ! -z "$1" ]
then
INIT_DIR=$1
find $INIT_DIR -type f -name "*.jpg" | xargs -I ARG jpegoptim -p -f ARG
find $INIT_DIR -type f -name "*.jpeg" | xargs -I ARG jpegoptim -p -f ARG
find $INIT_DIR -type f -name "*.png" | xargs -I ARG optipng -preserve -o7 ARG
else
echo ""
echo "Hay que indicar el directorio a partir del cual se quiere comprimir"
echo " "
echo "Formato:"
echo "./optimizar_imagenes.sh /var/directorio/"
fi
echo " "
Tened en cuenta que las imágenes comprimidas tendrán el usuario y grupo del usuario que ejecute el script.