compresso
Abrir la app

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.

GitHub · npm