Perguntas frequentes
Respostas diretas sobre o Compresso, otimizador gratuito no navegador e biblioteca JavaScript de 3,6 KB.
- Como comprimir uma imagem no navegador antes de enviar?
- Leia o arquivo de um input, passe para compress(file, { quality, maxWidth }) e envie result.file. Tudo roda no cliente — a imagem não sai do navegador até você enviá-la. Veja o início rápido na documentação.
- Como converter uma imagem HEIC para JPEG ou WebP em JavaScript?
- Passe o arquivo .heic ou .heif diretamente para compress(file, { format: "auto" }). O Compresso decodifica HEIC nativamente no Safari e via decodificador WASM lazy em outros navegadores, retornando um formato web padrão.
- Por que minha imagem comprimida ficou maior que a original?
- Na maioria das ferramentas, reencodar uma fonte já eficiente (como HEIC do iPhone) para JPEG pode inflar o arquivo. O Compresso garante que isso não acontece em saída com perda: o tamanho é limitado ao original e, sem WebP/AVIF, reduz a resolução em vez de aumentar o arquivo.
- Precisa de servidor ou backend?
- Não. O Compresso é 100% no cliente (Canvas API). Sem servidores, sem chaves de API, nenhuma imagem enviada a terceiros.
- Funciona com React, Vue e Next.js?
- Sim — é agnóstico a frameworks. Importe compress de compresso.js em qualquer fluxo de upload. Exemplos para React, Vue, Svelte, Angular e Next.js estão no repositório.
- Como comprimir muitas imagens em paralelo sem travar a interface?
- Importe createPool de compresso.js/pool — executa um pool de Web Workers com a mesma API, com fallback automático para a thread principal onde Workers não estão disponíveis.
- Meu site tem CSP rigorosa — por que a entrada HEIC falha?
- Geralmente falta wasm-unsafe-eval em script-src (o decodificador HEIC é WASM) ou worker-src self ao usar compresso.js/pool. Veja a seção CSP na documentação.