Comprimir Imagens & Reduzir Fotos

Comprimir Imagens & Reduzir Fotos

Comprima imagens online sem perda de qualidade. Reduza tamanhos de JPG, PNG e WebP direto no navegador, sem upload para servidores, com ajuste exato de KB e exportação em lote ZIP.

Predefinições:
Modo de Compressão

Arraste e solte fotos aqui ou clique para selecionar

Suporta JPG, PNG, WebP, AVIF, GIF, SVG e BMP. Zero envio ao servidor.

240 KB
Dimensões Máximas
W:
H:
Pipeline de Processamento no NavegadorOffscreenCanvas / O(N)
DECRESDCTBINZIP
0.980
Fidelidade Visual SSIMPerceptualmente Sem Perdas
Redução de Tamanho:-0.0%
0 B0 B
Zoom da Lupa:
Divisor de Comparação: 50%

Nenhuma imagem na fila. Arraste fotos acima para iniciar a otimização em lote.

Tamanho Original0 B
Tamanho Comprimido0 B
Bytes Economizados0 B
Taxa de Compressão0.0%
Referência técnica e guia de arquitetura

Comprimir Imagens & Reduzir Fotos — Guia de referência

Comprima imagens online sem perda perceptível de qualidade. Reduza o tamanho de arquivos JPG, PNG e WebP direto no navegador, sem upload para servidores, com ajuste exato de KB e exportação em lote via ZIP.

Comprimir Imagens & Reduzir Fotos — Guia de referência — Arquitetura em memória do lado do cliente e fluxo de dados
Comprimir Imagens & Reduzir Fotos — Guia de referência — Arquitetura em memória do lado do cliente e fluxo de dados

Parâmetros-chave e controles

Arquivos de origemFileList | Fluxo Drag-and-Drop

Buffers de bytes de imagem decodificados localmente via createImageBitmap e FileReader na memória isolada da thread do navegador, sem transmissão por sockets de rede.

Padrão: Seleção de arquivo único ou múltiplos
Modo de compressão"quality" | "targetSize"

Estratégia algorítmica de execução que alterna entre quantização escalar manual e um algoritmo de busca binária O(log k) para atingir limites estritos de bytes.

Padrão: quality
Formato de saída"image/webp" | "image/jpeg" | "image/png"

Contêiner MIME de destino que define as tabelas de quantização DCT, a predição de blocos intra-frame VP8 ou as rotinas de filtragem 2D DEFLATE (RFC 1951).

Padrão: image/webp
Fator de qualidadeIntervalo decimal [0.01, 1.00]

Escala de quantização com perdas repassada a HTMLCanvasElement.toBlob(). Fatores abaixo de 0.70 arriscam artefatos de ringing DCT em altas frequências, enquanto 0.80 preserva SSIM > 0.95.

Padrão: 0.80
Teto de tamanho alvoInteiro (Kilobytes, KB)

Limite máximo de peso do arquivo (ex.: 200 KB para vistos Schengen ou passaportes da UE, 240 KB para formulário DS-160 dos EUA) garantido por loop de convergência e busca de raízes inversas.

Padrão: 200
Dimensões máximasCaixa delimitadora de pixels (Largura x Altura)

Resolução espacial máxima aplicada via reamostragem bicúbica escalonada para restringir o total de operações a O(W × H) e evitar falhas de falta de memória (OOM) no canvas do WebKit.

Padrão: 1920 x 1080 px
Quantização de coresProfundidade de paleta (256 | 128 | 64 cores | Completa)

Matriz de redução de cor para arquivos PNG que executa particionamento espacial octree e pontilhamento Floyd-Steinberg para preservar o canal alfa de transparência no limite indexado de 8-bit.

Padrão: Cores completas (24-bit)
Sanitização de metadados EXIF"strip" | "safe" | "retain"

Barreira de privacidade que remove segmentos TIFF/Exif (coordenadas GPS, identificador de série da câmera e registros de data e hora) durante a resserialização raster do canvas.

Padrão: strip

Dicas profissionais e melhores práticas

Benchmark de eficiência: WebP versus JPEG

Converter fotografias de JPEG baseline para WebP reduz o peso do arquivo entre 25% e 35% com o mesmo Índice de Similaridade Estrutural (SSIM > 0.95). O WebP utiliza predição de macroblocos intra-frame VP8 e codificação aritmética discreta, eliminando artefatos de ringing DCT em bordas de alto contraste.

Mitigação de limites de memória de canvas no WebKit mobile

O Safari no iOS impõe um teto rígido de memória para canvas (normalmente de 256 MB a 384 MB de alocação acumulada na GPU). Ao processar fotos de alta resolução (>12 MP), execute downsampling escalonado via OffscreenCanvas ou createImageBitmap e defina explicitamente canvas.width = canvas.height = 0 após a compressão para forçar a coleta de lixo (garbage collection) imediata do contexto de hardware.

Convergência por busca binária para limites estritos de vistos e passaportes

Portais consulares e órgãos governamentais impõem limites rígidos de tamanho de arquivo (ex.: 240 KB para o formulário americano DS-160 ou 200 KB para vistos Schengen e passaportes da UE). Utilize o modo de tamanho alvo, que executa uma busca binária automatizada em 7 etapas nos parâmetros de quantização JPEG/WebP, convergindo para a maior qualidade perceptual em menos de 300 ms sem tentativas manuais.

Quantização de paleta por octree para elementos de interface com canal alfa

Para ícones de interface, logotipos e capturas de tela com cores sólidas e transparência alfa, converter para JPEG descarta a transparência, enquanto o WebP com perdas pode gerar halos nas bordas. Aplicar quantização de paleta octree de 8-bit com pontilhamento Floyd-Steinberg a arquivos PNG resulta em uma redução de 60% a 75% no tamanho do arquivo, preservando bordas perfeitamente nítidas (pixel-perfect).

Armadilhas comuns e solução de problemas

⚠️O arquivo de saída comprimido ficou maior que a imagem original

Recodificar um arquivo JPEG ou WebP já comprimido com alta qualidade (≥85%) força o codificador por transformada a tratar ruídos de quantização e artefatos de bloco preexistentes como informações autênticas de alta frequência, inflando a tabela de entropia. Ajuste a qualidade para 75% ou aplique uma redução dimensional de 10% para requantizar o domínio da frequência com eficiência.

⚠️O fundo transparente fica totalmente preto ou branco após a compressão

O padrão de contêiner JPEG (ISO/IEC 10918-1 / JFIF) não possui suporte a canal de transparência alfa e achata os pixels translúcidos sobre uma base fosca e opaca. Altere o formato de saída para WebP (que suporta compressão com perdas e canal alfa de 8-bit) ou PNG com quantização de 8-bit.

⚠️O solucionador de tamanho alvo não consegue atingir limites extremamente baixos de KB

Ao configurar um limite de peso muito agressivo (como <50 KB em uma foto 4K), a quantização atinge o piso mínimo de qualidade (1%), nível no qual os cabeçalhos baseline DCT e códigos run-length mínimos não reduzem mais. Ative a restrição de Dimensões máximas para diminuir a área em pixels proporcionalmente, já que o peso em bytes escala de forma quadrática com as dimensões lineares.

⚠️O navegador no celular trava ou recarrega a aba durante o processamento em lote

Decodificar várias fotos de alta resolução simultaneamente excede o limite de VRAM de dispositivos móveis, provocando o fechamento forçado da aba pelo sistema operacional. Limite a concorrência de lote para 1 (execução sequencial serializada) nas configurações, permitindo que a memória de cada buffer seja desalocada e limpa pelo garbage collector antes de decodificar a imagem seguinte.

Perguntas frequentes (FAQ)

Como a compressão por tamanho alvo calcula os limites exatos em KB?▼

A compressão por tamanho alvo executa uma busca binária O(log k) no espaço de parâmetros de quantização da transformada discreta de cosseno (DCT) [1, 100]. A cada iteração, o codificador do canvas avalia canvas.toBlob() contra o limite de bytes configurado; se o payload exceder o alvo, o limite superior é bisseccionado, convergindo para a maior qualidade visual possível em até 7 iterações em menos de 300 ms.

Qual é o benchmark ideal de qualidade de imagem e peso de arquivo para web performance?▼

O padrão recomendado para a web é de 75% a 82% de qualidade no formato WebP, mantendo um Índice de Similaridade Estrutural (SSIM) acima de 0.96, limitando imagens hero e banners abaixo de 150 KB e miniaturas abaixo de 70 KB. Esse balanço atende às métricas do Google Core Web Vitals para Largest Contentful Paint (LCP < 2,5 s) sem introduzir artefatos perceptíveis de alta frequência.

WebP vs JPEG vs PNG: qual formato gera o menor tamanho de arquivo?▼

O WebP entrega arquivos de 25% a 35% menores que o JPEG baseline com fidelidade visual idêntica (SSIM) graças à predição de macroblocos intra-frame do VP8, além de reduzir arquivos PNG de 24-bit em mais de 70% com suporte a canal alfa com perdas. O PNG continua sendo necessário apenas para ilustrações e diagramas sem perdas ou paletas indexadas de 8-bit em que textos nítidos não podem sofrer ruídos de quantização DCT.

Por que recomprimir uma imagem já comprimida pode aumentar o tamanho do arquivo?▼

A codificação por transformada com perdas não é idempotente: recomprimir uma imagem com qualidade alta (≥85%) provoca desalinhamento nos limites dos blocos DCT 8x8, forçando o codificador entrópico a registrar artefatos de compressões anteriores como pixels reais de alta frequência. Isso inflaciona as tabelas de Huffman ou de codificação aritmética, aumentando o arquivo final em 10% a 25%, a menos que seja feita uma requantização mais agressiva.

Como o processamento direto no navegador protege dados e imagens confidenciais?▼

Todas as operações de decodificação, reamostragem e recodificação ocorrem exclusivamente na memória local através do Canvas HTML5 do navegador, createImageBitmap e Web Workers, sem realizar nenhuma requisição HTTP externa. A integridade criptográfica pode ser verificada via Web Crypto API (crypto.subtle.digest) na sandbox da origem local, garantindo conformidade rigorosa com normas como LGPD, RGPD (GDPR), HIPAA e as especificações de segurança da RFC 6454.

Por que fundos transparentes ficam pretos ou brancos ao converter para JPG?▼

A especificação JPEG (JFIF / ISO/IEC 10918-1) não suporta canal alfa e codifica exclusivamente planos de luminância e crominância YCbCr. Ao exportar buffers de pixels RGBA do canvas para image/jpeg, o navegador compõe automaticamente os pixels transparentes sobre uma cor fosca opaca (normalmente preto 0x000000 ou branco 0xFFFFFF); para manter a transparência, é obrigatório selecionar WebP ou PNG.

Ferramentas e utilitários relacionados

Todas as ferramentas →