Por que os arquivos PNG são pesados
O PNG é sem perdas: cada pixel é guardado com exatidão, e a única economia vem de um compressor de uso geral parecido com o ZIP. Um PNG típico de uma ferramenta de captura de tela ou de um app de design é salvo em truecolor com canal alfa, o que significa 4 bytes por pixel antes da compressão. Uma captura de tela de 1920×1080 tem cerca de 8 MB de dados brutos de pixels e, mesmo depois de comprimida, muitas vezes fica entre 1 e 3 MB.
A maior parte dessa informação não é usada. A captura de tela de uma página web pode ter só algumas centenas de cores distintas. Um logotipo pode ter uma dúzia, mais os tons suavizados ao longo das bordas. Guardar cada pixel como um valor completo de 32 bits é exagero para esse tipo de imagem, e é essa folga que a ferramenta aproveita.
Como funciona a quantização em paleta
Em vez de guardar uma cor para cada pixel, um PNG indexado mantém uma paleta de até 256 cores e guarda cada pixel como um único byte que aponta para ela. O trabalho está em escolher a paleta. A ferramenta divide repetidamente as cores da imagem em grupos, na direção em que elas mais diferem, até ter tantos grupos quanto o nível escolhido, e então usa a média de cada grupo como uma entrada da paleta. Depois, cada pixel é associado à entrada mais próxima.
A transparência faz parte do mesmo processo: cada entrada da paleta carrega o próprio valor alfa, então uma sombra suave ou uma borda suavizada sobre fundo transparente sobrevive como várias cores semitransparentes da paleta, e não como um recorte seco.
Os três botões definem o tamanho da paleta:
- Alta · 256: o máximo de cores que um PNG com paleta comporta. Ícones, logotipos, capturas de tela de interfaces e diagramas costumam ficar idênticos ao original.
- Média · 128: ainda limpo em gráficos chapados e ilustrações com conjuntos de cores limitados. Vale tentar em capturas de tela de interfaces.
- Baixa · 64: para artes simples como gráficos, desenhos de linha e ícones com poucas cores. Degradês sutis começam a mostrar degraus.
A imagem é então gravada com a compressão padrão do PNG e mantém o nome de arquivo original.
Imagens que combinam com ela e imagens que não combinam
A quantização rende mais em conteúdo criado digitalmente:
- Capturas de tela de apps e sites, principalmente as com grandes áreas chapadas.
- Logotipos, ícones e selos com transparência.
- Gráficos, diagramas, mapas e mock-ups de interface.
- Pixel art, que muitas vezes sobrevive intacta até à configuração Baixa.
Ela sofre com degradês suaves e fotografias. A ferramenta associa cada pixel à cor da paleta mais próxima sem pontilhamento (dithering), então um céu ou uma vinheta suave que precisa de milhares de tons vira faixas visíveis. Para fotos, um formato com perdas faz um trabalho melhor: passe-as pelo PNG para JPG se não precisar de transparência, ou mantenha a transparência com o PNG para WebP.
Conferindo o resultado
Cada linha de arquivo mostra o tamanho original e o novo lado a lado. Se a quantização não consegue deixar um arquivo menor, a ferramenta devolve o original intacto e a linha avisa que o original foi mantido. Isso acontece com PNGs que já eram indexados ou foram muito otimizados por outra ferramenta, e com imagens cheias de ruído fino.
Para avaliar a qualidade, abra o original e o resultado lado a lado no comparar imagens e arraste o controle sobre degradês e bordas. Se aparecerem faixas, suba um nível; se Média parecer idêntica a Alta, fique com o arquivo menor.
Observações práticas
- Blocos de texto e de metadados do original, como o software que o criou ou comentários embutidos, não são levados, porque a imagem é decodificada e gravada do zero. Um arquivo devolvido sem alteração por não poder ficar menor mantém esses dados.
- Só é aceita entrada em PNG. Arquivos de até 50 MB cada funcionam, mas imagens muito grandes demoram mais: cada pixel precisa ser analisado para montar a paleta, então um PNG de 6000×4000 pode levar bem mais tempo que uma captura de tela.
- O processamento acontece num worker em segundo plano no seu navegador, quando há suporte. Nada é enviado, e um lote pode ser baixado num único ZIP.
- Reduzir as dimensões antes muitas vezes importa mais que a paleta. Uma captura de tela retina 2× redimensionada para o tamanho de exibição tem um quarto dos pixels antes mesmo de a quantização começar.