compresso
Abrir o app

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.

GitHub · npm