El contenedor ICO, y por qué funcionan las entradas PNG
Un archivo .ico es uno de los formatos contenedores más simples que siguen en uso diario: una cabecera ICONDIR de 6 bytes (palabra reservada, tipo 1 para iconos, número de entradas), luego un ICONDIRENTRY de 16 bytes por imagen que registra su ancho y alto (como bytes individuales, donde 0 significa 256), profundidad de bits, longitud en bytes y desplazamiento, seguido de los datos de imagen en bruto uno tras otro. Originalmente esos datos tenían que ser un BMP sin cabecera con una máscara de transparencia AND; desde Windows Vista, los datos pueden ser en cambio un flujo PNG completo, que el sistema operativo detecta por sus bytes de firma. Ese único cambio es lo que hace posible un generador del lado del cliente tan pequeño — el propio codificador PNG de canvas.toBlob del navegador hace el trabajo de píxeles, y la capa ICO es solo 6 + 16×n bytes de contabilidad little-endian escrita con un DataView.