Gerador de Favicon: por que um site precisa de 6 tamanhos, não 1
"Favicon" hoje é um nome que cobre um conjunto de imagens em tamanhos diferentes, não um único arquivo — cada contexto de exibição (aba do navegador, atalho na tela inicial de um iPhone, ícone de app Android, barra de favoritos) espera uma resolução própria, otimizada para aquele espaço específico. Este gerador produz seis tamanhos — 16×16 e 32×32 (abas de navegador e favoritos, em telas normais e de alta densidade), 48×48 (usado internamente pelo formato .ico multi-resolução), 180×180 (o padrão da Apple para ícone de tela inicial em iOS), 192×192 e 512×512 (os tamanhos exigidos pela especificação de Web App Manifest do Android/Chrome para instalação como aplicativo) — cobrindo os contextos mais comuns de exibição de ícone de site na web atual.
Por que .ico não é só um PNG renomeado
O formato .ico é um contêiner binário próprio — não um
PNG com extensão trocada — capaz de empacotar múltiplas
resoluções da mesma imagem num único arquivo, permitindo que
o navegador escolha a resolução mais apropriada para o contexto sem
precisar de várias requisições separadas. Este gerador monta esse
contêiner diretamente no navegador: um cabeçalho de 6 bytes, seguido
de uma entrada de diretório de 16 bytes para cada resolução incluída
(descrevendo dimensões, formato e a posição de cada imagem dentro do
arquivo), seguido pelos dados PNG de cada resolução concatenados — uma
implementação da especificação binária do formato ICO em JavaScript
puro, sem depender de uma biblioteca externa ou de processamento no
servidor.
Por que gerar todos os tamanhos de uma imagem só, não pedir cada um separado
Redimensionar uma única imagem de entrada para todos os tamanhos necessários, em vez de exigir que o usuário forneça cada resolução manualmente, garante consistência visual entre os tamanhos — o mesmo ícone, escalado de forma previsível, em vez de possíveis inconsistências de design entre arquivos preparados separadamente. A imagem de entrada precisa ter resolução suficiente para o maior tamanho de saída (512×512) sem ficar borrada — reduzir resolução é uma operação sem perda de qualidade adicional relevante, mas ampliar uma imagem pequena para 512px sempre introduz borrão perceptível, uma limitação física de qualquer redimensionamento de imagem rasterizada.