Il contenitore ICO, e perché le voci PNG funzionano
Un file .ico è uno dei formati contenitore più semplici ancora in uso quotidiano: un'intestazione ICONDIR di 6 byte (parola riservata, tipo 1 per le icone, numero di voci), poi una ICONDIRENTRY di 16 byte per ciascuna immagine che ne registra larghezza e altezza (come singoli byte, dove 0 significa 256), profondità di bit, lunghezza in byte e offset, seguita dai dati grezzi delle immagini uno dietro l'altro. In origine quei dati dovevano essere un BMP senza intestazione con una maschera di trasparenza AND; da Windows Vista, i dati possono invece essere un flusso PNG completo, che il sistema operativo riconosce dai byte della sua firma. È proprio quel cambiamento a rendere possibile un generatore lato client così piccolo — l'encoder PNG di canvas.toBlob del browser fa il lavoro sui pixel, e lo strato ICO è solo 6 + 16×n byte di contabilità little-endian scritta con una DataView.