37 puntos por abcdkh1209 2026-02-18 | 7 comentarios | Compartir por WhatsApp

¿Por qué lo hice?

Usaba mucho una herramienta de Google llamada Squoosh, pero la versión CLI daba errores al ejecutarse y la versión web era bastante útil, aunque... con ese típico estado de abandono de Google, al final decidí hacerla yo mismo. Busqué alternativas, pero no encontré ninguna que me convenciera.

¿Qué es slimg?

Es un CLI de optimización de imágenes escrito en Rust. Soporta conversión entre JPEG, WebP, PNG, AVIF y QOI, además de redimensionado y optimización de calidad. Usa códecs modernos como MozJPEG, OxiPNG y ravif.

Resultado real de uso:

Optimicé en lote 54 GB de fotos personales y se redujeron a 8 GB. (85% menos) La calidad es prácticamente indistinguible a simple vista.

# Procesamiento por lotes de directorio (en paralelo)  
slimg convert ./photos --format webp --quality 85 --recursive  
  
# Redimensionar + convertir  
slimg resize photo.jpg --width 800 --format avif --quality 70  

Características técnicas:

  • Procesamiento en paralelo en todos los núcleos de CPU con Rayon
  • Overwrite seguro con archivo temporal → atomic rename
  • Separación entre la biblioteca (slimg-core) y el CLI (reutilizable)
  • Rendimiento nativo mediante bindings a códecs en C

Instalación:

brew install clroot/tap/slimg  
# https://github.com/clroot/slimg/releases  

GitHub: https://github.com/clroot/slimg

7 comentarios

 
abcdkh1209 2026-02-18

Se agregaron los bindings de Kotlin para slimg. Esto facilita el procesamiento de imágenes en servidores y backends.

 
rainystar 2026-02-23

Yo también lo hice con un LLM para reducir el tamaño y conservar la calidad mientras eliminaba el fondo de archivos generados en PNG y los convertía a SVG. Lo hice en Rust, y la conversión a SVG funcionó muy bien, pero para reducir el tamaño del SVG no me quedó otra que usar un programa llamado svgo. svgo es excelente para eliminar código innecesario en SVG, pero me parece que esa parte requiere conocimiento de dominio, así que lo he estado aprovechando.
Sin embargo, no se me había ocurrido usar códecs modernos como MozJPEG, OxiPNG o ravif. Yo también quiero probarlo. Gracias por la inspiración.

 
secret3056 2026-02-20

Yo ya estaba usando SalOne22/rimage, pero habrá que ver qué tal está este. Por ahora, que ofrezca bindings para Python parece ser una ventaja.

 
abcdkh1209 2026-02-19

También se agregaron los bindings de Python para slimg.

 
click 2026-02-18

Yo también hice en Rust una herramienta que convierte por lotes imágenes empaquetadas en archivos comprimidos y la estoy usando, así que creo que voy a probar cambiar las llamadas internas a este repositorio.
¿Habrá alguna razón específica por la que la decodificación de AVIF solo sea posible en macOS?

 
abcdkh1209 2026-02-18

Ahora, si usan la versión 0.1.3, también podrán decodificar avif en Windows y Linux.

 
abcdkh1209 2026-02-18

Se debe a que la versión de la biblioteca que maneja AVIF en el entorno de GitHub Actions usado para compilar no es compatible. Pronto ajustaremos el entorno de compilación para habilitar el soporte de AVIF también en máquinas Linux.