WebP es el formato estándar abierto más utilizado para servir imágenes comprimidas en web. Está desarrollado por Google. Casi cualquier framework o CMS puede generar imágenes en este formato a partir de formatos comprimidos como PNG o JPG así que raramente hay que hacerlo manualmente. Sin embargo hay veces que aún me hace falta, por ejemplo cuando hay que optimizar un sitio web que tiene unos años. En estos casos merece la pena hacerlo desde la línea de comandos: es la manera más rápida y además, como siempre ocurre con la línea de comandos, permite automatizar el proceso con un script de bash.
Google dice que las imágenes WebP lossless pesan un 26% menos que la versión PNG. WebP permite compresión lossless (sin perdida de datos para una eventual reconversión al formato original) y lossy (con perdida de datos pero mayor nivel de compresión).
Instalar webp en Linux
Google ha desarrollado una librería para convertir imágenes al formato WebP y viceversa. Se puede instalar en cualquier máquina Linux desde los repositorios oficiales de la distribución, en mi caso Debian. Para instalar el paquete de herramientas para trabajar con WebP:
sudo apt install webp
Convertir imágenes PNG o JPG a WebP
cwebp es capaz de convertir imágenes PNG (salvo la versión animada), JPG o TIFF. También acepta formato WebP para re-optimizar imágenes previamente convertidas.
cwebp -q 80 image.png -o image.webp
Convertir imágenes WebP a PNG o JPG
Para realizar la conversión inversa y transformar imágenes WebP a PNG o JPG se puede usar el comando dwebp de la misma librería:
dwebp image.webp -o image.png
La librería desarrollada por Google contiene más herramientas para trabajar con imágenes desde la línea de comandos. Se puede explorar su funcionamiento en la documentación oficial de Google, así como los detalles del tipo de compresión utilizado y su eficiencia.