Optimizar / Comprimir Imágenes Automáticamente en sistemas Linux
Variasutilidades Linux permiten la compresión semi-automatica de imágenes: OptiPNG, P NGQuant 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 {} \;