O contêiner ICO, e por que entradas em PNG funcionam
Um arquivo .ico é um dos formatos de contêiner mais simples ainda em uso diário: um cabeçalho ICONDIR de 6 bytes (palavra reservada, tipo 1 para ícones, contagem de entradas), depois um ICONDIRENTRY de 16 bytes por imagem registrando sua largura e altura (como bytes únicos, onde 0 significa 256), profundidade de bits, tamanho em bytes e offset, seguidos pelos dados brutos das imagens um após o outro. Originalmente esses dados tinham que ser um BMP sem cabeçalho com uma máscara de transparência AND; desde o Windows Vista, os dados podem ser um fluxo PNG completo, que o sistema detecta pelos bytes de assinatura. Essa única mudança é o que torna possível um gerador no lado do cliente tão pequeno — o codificador PNG do próprio canvas.toBlob do navegador faz o trabalho de pixels, e a camada ICO é só 6 + 16×n bytes de contabilidade little-endian escrita com um DataView.