Lezione di storia: Cos’è un file .ico? Il formato delle icone di Windows
Il formato delle icone di Windows: un file con più dimensioni e profondità di colore, una piccola intestazione e una directory all’inizio, immagini compresse in PNG da Windows Vista, un fratello .cur per i cursori e il favicon.ico che ogni sito web serve ancora.

TL;DR
Un .ico è un file di icone di Windows. Un solo file può contenere più immagini della stessa icona in diverse dimensioni e profondità di colore, e Windows sceglie quella più adatta per il desktop, una barra del titolo o una finestra di dialogo. La struttura è semplice: un’intestazione di 6 byte (riservato, tipo, numero di immagini), una voce di directory di 16 byte per ogni immagine, poi i dati. Le voci classiche sono bitmap (DIB) con una maschera AND per la trasparenza; da Windows Vista una voce può essere un PNG completo, il che ha reso pratiche le icone 256×256. Il formato cursore .cur è quasi un gemello (tipo 2 invece di 1, più un hotspot). Sul web, Internet Explorer 5 (marzo 1999) iniziò a richiedere favicon.ico nella radice dei siti. Per ottenere un’immagine normale, converti .ico in PNG in locale: Legacy File Converter lo fa sul tuo PC, senza caricare nulla.
Cos’è un file .ico?
Un file .ico è il formato delle icone di Windows. La maggior parte dei file immagine contiene una sola immagine; un file ICO contiene una risorsa icona: una piccola raccolta di immagini che mostrano tutte la stessa icona, ciascuna disegnata in una dimensione e/o profondità di colore diversa. La spiegazione di Microsoft, l’articolo Icons di John Hornick datato 29 settembre 1995, lo dice chiaramente: un singolo file ICO, o una risorsa icona dentro un EXE o una DLL, può contenere più immagini di icona, ognuna con dimensione e/o profondità di colore diversa.
Ecco perché la ricerca «cos’è un file .ico» arriva spesso da chi ne ha trovato uno nella cartella di un programma, in un download dal web o in un vecchio progetto e si chiede perché il visualizzatore di foto mostri solo un quadratino, o niente. Il file è valido; è semplicemente un contenitore di immagini di icona, non una foto qualunque. Per formati vicini su questo sito, vedi Lezione di storia: Cos’è un file .bmp? e Lezione di storia: Cos’è un file .png?.
Le prime icone di Windows e l’epoca della dimensione unica
Le icone fanno parte di Windows fin dai primi ambienti desktop, ma il sistema iniziale ragionava con una sola dimensione di icona. L’articolo di Microsoft del 1995 osserva che le funzioni originali come LoadIcon, ExtractIcon e DrawIcon risalivano «ai tempi dei 16 bit, quando il sistema definiva una sola dimensione di icona», e stirano ciò che ricevono fino alla dimensione grande standard.
Con Windows 95 e le versioni successive di Windows NT, Windows gestì icone piccole e grandi sia per il sistema sia per la shell, e nuove funzioni (le varianti Ex, LoadImage, DrawIconEx) potevano chiedere una dimensione precisa. Le indicazioni del 1995 invitavano gli sviluppatori a includere almeno 16×16 e 32×32 a 16 colori e 48×48 a 256 colori. Il formato poteva contenere dimensioni insolite da tempo; era Windows a mettersi al passo per usarle.
Un file, molte dimensioni e profondità di colore
Quando Windows ha bisogno di un’icona, scorre le immagini della risorsa. Secondo le regole di Microsoft del 1995, sceglie l’immagine di dimensione più vicina a quella richiesta; se più immagini hanno quella dimensione, preferisce quella che corrisponde alla profondità di colore dello schermo, altrimenti la più profonda che non la superi. Le dimensioni piccole non sono semplici copie ridotte: i designer spesso le ridisegnano perché la versione 16×16 resti leggibile.
Le linee guida delle icone di Windows Vista indicarono poi come set completo per le icone delle applicazioni 16×16, 32×32, 48×48 e 256×256, con grafica a 32 bit (alfa inclusa) più versioni a tavolozza da 8 bit e 4 bit per casi come il desktop remoto. Un piccolo .ico può quindi contenere una dozzina di immagini o più, ed è proprio ciò che si vede aprendolo in un editor di icone.
Tante immagini, un’icona
Se un visualizzatore mostra un’immagine diversa o minuscola, probabilmente ha scelto una voce tra tante. Convertire in PNG di solito significa scegliere una voce, in genere la più grande, ed esportarla.
Come è organizzato un file .ico
La struttura sta in un paragrafo. Il file inizia con un’intestazione ICONDIR di tre parole da 2 byte: un valore riservato che deve essere 0, un tipo pari a 1 per le icone e un conteggio delle immagini. Segue una ICONDIRENTRY per ogni immagine, da 16 byte ciascuna, con larghezza, altezza, numero di colori, piani, bit per pixel, il numero di byte dei dati dell’immagine e l’offset a cui questi dati iniziano nel file.
Ogni immagine classica è un DIB (bitmap indipendente dal dispositivo): un BITMAPINFOHEADER, una tabella dei colori facoltativa, la maschera XOR (i pixel colorati) e una maschera AND a 1 bit che segna le aree trasparenti. Microsoft segnala un tranello classico: l’altezza nell’intestazione è l’altezza combinata delle due maschere, quindi risulta il doppio dell’altezza reale dell’icona. Nella stessa famiglia, le icone salvate dentro file EXE e DLL usano strutture quasi identiche come risorse RT_GROUP_ICON e RT_ICON.
PNG dentro l’icona da Windows Vista
Icone più grandi rendevano pesanti i dati bitmap. Un articolo di MSDN Magazine del 2008 sulla decodifica delle icone di Windows Vista spiega che, crescendo, le bitmap occupavano troppo spazio su disco e in memoria, e Microsoft scelse il PNG: le icone di Windows Vista possono incorporare immagini PNG invece dei DIB, rendendo pratiche icone 256×256 a 32 bit con una frazione dello spazio. Le linee guida di Vista indicano che va compressa solo l’immagine 256×256, lasciando le dimensioni minori nella forma classica.
Un campo di larghezza o altezza da un byte non può contenere 256, quindi uno 0 nella voce di directory si legge come 256. Per il software scritto prima di Vista, una voce compressa in PNG è un dato sconosciuto: è uno dei motivi per cui alcuni strumenti datati falliscono con i file .ico moderni anche se Windows li mostra senza problemi.
Strumento vecchio, icona nuova
Un editor dell’epoca di Windows XP può aprire le piccole voci bitmap di un’icona moderna ma fallire sulla voce PNG 256×256, o rifiutare l’intero file. L’icona non è danneggiata; il programma è semplicemente più vecchio dell’aggiunta del PNG negli ICO.
Il fratello .cur per i cursori
I puntatori del mouse usano un formato quasi identico con l’estensione .cur. L’articolo di Microsoft del 1995 dice che i cursori sono «molto simili alle icone», al punto che il suo editor di icone di esempio poteva leggere i file .CUR allentando un solo controllo: il tipo di intestazione 2 per i cursori invece di 1 per le icone. L’articolo MSDN del 2008 ripete la regola: la seconda parola vale 1 per le icone e 2 per i cursori.
L’elemento in più di un cursore è l’hotspot, le coordinate del pixel che vale come punta del puntatore. Come descrive Raymond Chen su The Old New Thing, le risorse immagine dei cursori iniziano con le coordinate x e y dell’hotspot prima dei dati bitmap. I cursori animati (.ani) sono un formato a parte e non fanno parte di questa lezione.
favicon.ico sul web
Il formato .ico è uscito dal desktop attraverso il browser. Internet Explorer 5, uscito a marzo 1999, richiedeva un file chiamato favicon.ico nella radice di un sito quando l’utente lo aggiungeva ai Preferiti, e mostrava quell’icona nell’elenco dei Preferiti. Raymond Chen spiegò poi che IE lo cercava solo quando una pagina veniva aggiunta ai Preferiti, non a ogni visita, per non sovraccaricare i server. Le pagine potevano anche indicare un’altra posizione con un elemento link nell’HTML.
Oggi i browser accettano altri formati per le icone dei siti, ma molti siti mantengono ancora un favicon.ico nella radice, e il team di IE di Microsoft ha osservato che la capacità dell’ICO di contenere più dimensioni si adatta ai tanti punti in cui compare l’icona di un sito: schede, preferiti, collegamenti. Così un .ico nella cartella Download è spesso solo l’icona di un sito salvata dal web.
Convertire .ico in PNG in locale
Rinominare .ico in .png non funziona: il file inizia con l’intestazione ICONDIR, non con una firma PNG, e può contenere molte immagini. Una vera conversione legge la directory, sceglie una voce, di solito la più grande, decodifica i dati bitmap o PNG, applica la maschera di trasparenza e scrive un normale PNG che conserva il canale alfa. Scegli JPG solo se non ti serve la trasparenza.
Legacy File Converter apre i file .ico sul tuo PC Windows e li converte in PNG o JPG: non viene caricato nulla, il che conta quando le icone appartengono al progetto di un cliente o a un’applicazione interna. È un modo tranquillo per trasformare file legacy come vecchi set di icone in immagini che qualsiasi applicazione può aprire. Per le lezioni vicine, vedi BMP, PNG e WebP.
Letture correlate
Pronto ad aprire i tuoi vecchi file?
Inizia gratis, poi sblocca le conversioni illimitate con una licenza Standard da $79.95 una tantum. Scarica il programma di installazione per Windows: tutte le funzioni per un massimo di 10 file.
Prova gratuita
Tutte le funzioni dell'app · fino a 10 file
Windows 10 o 11
La stessa prova gratuita di sempre: scarica il programma di installazione per Windows e converti in locale sul tuo PC.
Programma di installazione diretto per Windows · MSI offline
È sicuro? — editore, programma di installazione e aiuto su SmartScreen
Richiede Windows 10 o 11. Nessun abbonamento. 100% nativo per Windows.