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 |
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 " " |
Tened en cuenta que las imágenes comprimidas tendrán el usuario y grupo del usuario que ejecute el script.