Comprimir y descomprimir imágenes en formato WebP

Publicado el 21 Jun, 2022

Contexto

Buscando wallpapers para la resolución de monitor 3440x1440 en el hilo de Reddit: WidescreenWallpapers, me percaté que habían muchos wallpapers en formato WebP que es un tipo de formato de imagen desarrollado por Google. Pero lamentablemente, no es posible configurar un wall con este formato en XFCE.

Así que me puse a investigar cómo poder pasar este tipo de archivos a un formato soportado como .PNG o .JPEG en Archlinux y dí con la librería libwebp que ofrece la propia Google, que nos proveé de dos comandos útiles como son:

  1. cwebp
  2. dwebp

Instalación

Basta con instalar el siguiente paquete de los repositorios oficiales:

sudo pacman -S libwebp

Comprimir una imagen con: cwebp

Para pasar una imagen a formato webp utilizaremos el comando cwebp de la siguiente manera:

cwebp -q 90 input.png -o output.webp

El parámetro -q 90 se refiere al factor de compresión RGB y va de 0 a 100, siendo un valor cercano a 100 lo que nos dará una imagen de mejor calidad(por defecto 75). Con el comando anterior basta y sobra pero si necesitas mas control con la imagen resultante puedes consultar la documentación oficial en cwebp docs

Descomprimir una imagen con: dwebp

Ahora bien si lo que necesitamos es lo contrario a cwebp tenemos a disposición el comando dwebp que nos permitirá pasar de formato webp a formato .PNG (por defecto), pero también a otros formatos como BMP, TIFF, PAM, PPM o PGM y su forma de utilización es:

dwebp input.webp

Por defecto, nos generará un archivo input.png y si queremos setear un poco más el archivo de salida usaríamos el comando:

dwebp input.webp -o output.png

Y en caso de necesitar por ejemplo la salida en formato TIFF usaríamos:

dwebp input.webp -tiff

Para más opciones del comando puedes visitar dwebp docs.

Limitantes

Tanto cwebp como dwebp no pueden trabajar con imágenes animadas, por lo tanto deberás buscar otras alternativas para los live wallpapers por ejemplo.

Espero te sirva 🤘