Preguntas frecuentes
Respuestas directas sobre Compresso, el optimizador de imágenes gratuito en el navegador y la librería JavaScript de 3,6 KB.
- ¿Cómo comprimo una imagen en el navegador antes de subirla?
- Lee el archivo desde un input, pásalo a compress(file, { quality, maxWidth }) y sube result.file. Todo se ejecuta en el cliente: la imagen no sale del navegador hasta que tú la subes. Consulta el inicio rápido en la documentación.
- ¿Cómo convierto una imagen HEIC a JPEG o WebP en JavaScript?
- Pasa el archivo .heic o .heif directamente a compress(file, { format: "auto" }). Compresso decodifica HEIC de forma nativa en Safari y con un decodificador WASM perezoso en otros navegadores, y devuelve un formato web estándar.
- ¿Por qué mi imagen comprimida quedó más grande que la original?
- En la mayoría de herramientas, volver a codificar una fuente ya eficiente (como un HEIC de iPhone) a JPEG puede inflarla. Compresso garantiza que esto no ocurre en salida con pérdida: el archivo se limita al tamaño de origen y, en navegadores sin WebP/AVIF, reduce la resolución en lugar de aumentar el peso.
- ¿Necesita un servidor o backend?
- No. Compresso es 100% del lado del cliente (Canvas API). Sin servidores, sin claves API, ninguna imagen se sube a terceros.
- ¿Funciona con React, Vue y Next.js?
- Sí — es agnóstico al framework. Importa compress desde compresso.js en cualquier flujo de subida. Hay ejemplos para React, Vue, Svelte, Angular y Next.js en el repositorio.
- ¿Cómo comprimo muchas imágenes en paralelo sin bloquear la interfaz?
- Importa createPool desde compresso.js/pool — ejecuta un pool de Web Workers con la misma API y vuelve al hilo principal automáticamente donde no haya Workers.
- Mi sitio tiene una CSP estricta — ¿por qué falla la entrada HEIC?
- Suele faltar wasm-unsafe-eval en script-src (el decodificador HEIC usa WASM) o worker-src self si usas compresso.js/pool. Consulta la sección CSP en la documentación.