1. Resumen rápido
- Proceso 100% local: Canvas + compresión integrada.
- Slider de calidad: 30–95 para equilibrar peso y fidelidad.
- Formato automático: Decide entre JPEG/WebP buscando menor peso.
- Procesado por lotes: Optimiza n imágenes en secuencia.
- Descarga múltiple o ZIP: Si >5 archivos se empaquetan.
- Comparación instantánea: Vista lado a lado en nueva pestaña.
2. Flujo recomendado
- Carga tus imágenes (JPG, PNG, WebP).
- Ajusta calidad global (empieza en 80 para fotos, 75 para ilustraciones).
- Deja auto en formato salvo que fuerces JPEG o WebP.
- Pulsa “Optimize all” y revisa porcentajes de ahorro.
- Si aparecen artefactos (banding, bloques) sube 5 puntos la calidad.
3. Cómo funciona internamente
Por cada imagen se decodifica a un elemento <img>
, se vuelca a un <canvas>
y se re-encodea vía canvas.toBlob()
usando image/webp
o image/jpeg
. No se envían bytes a servidores y los ObjectURL
se liberan tras la descarga para minimizar memoria.
4. Detección de formato
La lógica “auto” intenta WebP para PNG (sobre todo con transparencia) y conserva JPEG para fotos cuando el ahorro respecto a WebP sería marginal. WebP suele ofrecer 20–35% menos bytes que JPEG a calidades similares.
5. Rendimiento y límites
- Complejidad O(n) respecto a píxeles.
- Imágenes medianas (≤3000px lado mayor) procesan en milisegundos.
- Muy grandes (>6000px) pueden requerir más memoria y tiempo.
- Si el navegador agota memoria, procesa por lotes pequeños.
6. Privacidad
No existe subida. Ideal para material sensible, imágenes de clientes o archivos bajo NDA. El modelo de negocio se sustenta en anuncios ligeros, no en monetizar tus datos.
7. Checklist rápido
- Peso final < 250KB (hero) / <100KB (inline).
- Dimensiones ya redimensionadas antes de comprimir.
- Formato moderno (WebP) disponible cuando ahorra bytes.
- Sin artefactos perceptibles.
8. Próximas mejoras
Soporte AVIF, preajustes inteligentes por tipo de imagen y métricas SSIM/PSNR locales para validar calidad objetivamente.