Optimizar / Comprimir Imágenes Automáticamente en Linux
5 (100%) 1 voto

Varias herramientas Linux permiten la compresión semi-automatica de imágenes: OptiPNG, PNGQuant y JPEGOptim que dependiendo de la extensión y combinando con ImageMagick podemos realizar una compresión y optimización de todas las imágenes JPG y/o PNG sin perder calidad en las mismas también llamada compresión sin perdida o “lossless” y en el caso de PNG realizando un proceso estadistico de seleccion de paleta de colores.

Estas optimizaciones a las imágenes le permitiran mejorar sustancialmente la velocidad de un sitio web y pasar pruebas de velocidad como las de Google Page Speed.

1. Instalacion del repositorio EPEL para CentOS

– Instalación para la version CentOS 6.x

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
sudo rpm -Uvh epel-release-6*.rpm
– Instalación para la version CentOS 7.x

wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh epel-release-latest-7*.rpm

2. Instalacion de los comandos OptiPNG, PNGQuant y JPEGOptim e ImageMagick

yum install pngquant
yum install jpegoptim
yum install optipng
yum install ImageMagick

3. Optimizar y Comprimir Imágenes

Realice una copia de seguridad de sus imágenes antes de ejecutar esta optimización dado que la misma reemplazara todas los archivos originales en la carpeta y subcarpetas donde sea ejecutada y a un tamaño maximo de 1920×1024. También elimina los datos Exif dentro de las imágenes JPG con la opción “strip-all”.

Buscamos y ejecutamos la optimización en todas las imágenes:

find . \( -iname ‘*.jpg’ -o -iname ‘*.jpeg’ -o -iname ‘*.png’ \) -exec convert -resize 1920×1024\> {} {} \;

find . \( -iname ‘*.jpg’ -o -iname ‘*.jpeg’ \) -exec jpegoptim –strip-all -m80 {} \;

find . -name ‘*.png’ -exec pngquant -v -f –quality=80-100 –ext .png {} \;
Solo de ser necesario cambiamos el

scowner=$(stat -c ‘%U’ .)

find . \( -iname ‘*.jpg’ -o -iname ‘*.jpeg’ -o -iname ‘*.png’ \) -exec chmod 644 {} \;

find . \( -iname ‘*.jpg’ -o -iname ‘*.jpeg’ -o -iname ‘*.png’ \) -exec chown $scowner.$scowner {} \;