Legacy File Converter-logotypLegacy File Converter
Historielektion8 min läsning

Historielektion: Vad är en .ico-fil? Windows ikonformat

Windows ikonformat — en fil med flera storlekar och färgdjup, ett litet huvud och en katalog först, PNG-komprimerade bilder sedan Windows Vista, ett .cur-syskon för muspekare och den favicon.ico som varje webbplats fortfarande serverar.

·Av Legacy File Converter-teamet
En retro stationär dator med ikoner på skärmen, en mappikon staplad i flera storlekar, ett dokumentkort och en pilpekare, inga logotyper

TL;DR

En .ico är en Windows-ikonfil. En enda fil kan innehålla flera bilder av samma ikon i olika storlekar och färgdjup, och Windows väljer den som passar bäst för skrivbordet, en namnlist eller en dialogruta. Strukturen är enkel: ett huvud på 6 byte (reserverat, typ, antal bilder), en katalogpost på 16 byte per bild och sedan bilddata. Klassiska poster är bitmappsdata (DIB) med en AND-mask för transparens; sedan Windows Vista kan en post vara en komplett PNG, vilket gjorde 256×256-ikoner praktiska. Pekarformatet .cur är nästan en tvilling (typ 2 i stället för 1, plus en hotspot). På webben började Internet Explorer 5 (mars 1999) hämta favicon.ico från webbplatsers rot. För att få ut en vanlig bild konverterar du .ico till PNG lokalt — Legacy File Converter gör det på din egen dator, utan uppladdning.

Vad är en .ico-fil?

En .ico-fil är Windows ikonformat. De flesta bildfiler innehåller en bild; en ICO-fil innehåller en ikonresurs — en liten samling bilder som alla visar samma ikon, var och en ritad i en annan storlek och/eller ett annat färgdjup. Microsofts egen förklaring, John Hornicks artikel Icons daterad 29 september 1995, säger det rakt ut: en enda ICO-fil, eller en ikonresurs i en EXE eller DLL, kan innehålla flera ikonbilder med var sin storlek och/eller färgdjup.

Därför kommer sökningen ”vad är en .ico-fil” oftast från någon som hittat en i en programmapp, en nedladdning från webben eller ett gammalt projekt och undrar varför bildvisaren bara visar en liten fyrkant — eller ingenting alls. Filen är giltig; den är bara en behållare för ikonbilder, inte ett vanligt foto. För närliggande format på den här webbplatsen, se Historielektion: Vad är en .bmp-fil? och Historielektion: Vad är en .png-fil?.

Tidiga Windows-ikoner och eran med en storlek

Ikoner har funnits i Windows sedan de tidigaste skrivbordsmiljöerna, men det tidiga systemet tänkte i en enda ikonstorlek. Microsofts artikel från 1995 noterar att de ursprungliga funktionerna som LoadIcon, ExtractIcon och DrawIcon var ”kvar från 16-bitarstiden, när systemet bara definierade en ikonstorlek”, och att de sträcker det de får till den stora standardstorleken.

Med Windows 95 och de följande Windows NT-versionerna höll Windows reda på små och stora ikoner för både system och skal, och nya funktioner (Ex-varianterna, LoadImage, DrawIconEx) kunde begära en viss storlek. Riktlinjerna från 1995 uppmanade utvecklare att leverera minst 16×16 och 32×32 i 16 färger plus 48×48 i 256 färger. Formatet hade länge kunnat rymma ovanliga storlekar; det var Windows som kom ikapp för att använda dem.

En fil, många storlekar och färgdjup

När Windows behöver en ikon går det igenom bilderna i resursen. Enligt Microsofts regler från 1995 väljer det bilden med storleken närmast den begärda; om flera delar den storleken föredras den som matchar skärmens färgdjup, annars den djupaste som inte överstiger det. Små storlekar är inte bara förminskade kopior — formgivare ritar ofta om dem så att en 16×16-version förblir läsbar.

Microsofts ikonriktlinjer för Windows Vista angav senare den fullständiga uppsättningen för programikoner som 16×16, 32×32, 48×48 och 256×256, med 32-bitars grafik (inklusive alfa) plus palettversioner i 8 bitar och 4 bitar för situationer som fjärrskrivbord. En liten .ico kan därför rymma ett dussin bilder eller fler — precis vad man ser när man öppnar den i en ikonredigerare.

Många bilder, en ikon

Om en bildvisare visar en annorlunda eller pytteliten bild har den troligen valt en post av flera. Att konvertera till PNG innebär oftast att välja en post — normalt den största — och exportera den.

Hur en .ico-fil är uppbyggd

Strukturen ryms i ett stycke. Filen börjar med ett ICONDIR-huvud på tre ord à 2 byte: ett reserverat värde som måste vara 0, en typ som är 1 för ikoner och ett antal bilder. Därefter följer en ICONDIRENTRY per bild — 16 byte var — med bildens bredd, höjd, antal färger, plan, bitar per pixel, antal byte bilddata och den förskjutning där data börjar i filen.

Varje klassisk bild är en DIB (enhetsoberoende bitmapp) — ett BITMAPINFOHEADER, en valfri färgtabell, XOR-masken (färgpixlarna) och en 1-bitars AND-mask som markerar transparenta områden. Microsoft nämner en klassisk fälla: höjden i huvudet är den sammanlagda höjden för båda maskerna, så den ser dubbelt så stor ut som ikonens verkliga höjd. I samma familj använder ikoner i EXE- och DLL-filer nästan samma strukturer som RT_GROUP_ICON- och RT_ICON-resurser.

PNG i ikonen sedan Windows Vista

Större ikoner gjorde bitmappsdata tunga. En artikel i MSDN Magazine från 2008 om avkodning av Windows Vista-ikoner förklarar att de växande bitmapparna tog för mycket plats på disk och i minnet, så Microsoft valde PNG: ikoner i Windows Vista kan bädda in PNG-bilder i stället för DIB:ar, vilket gjorde 256×256-ikoner i 32 bitar praktiska till en bråkdel av storleken. Microsofts Vista-riktlinjer säger att bara 256×256-bilden ska komprimeras, medan mindre storlekar behålls i klassisk form.

Ett bredd- eller höjdfält på en byte kan inte lagra 256, så en 0 i katalogposten läses som 256. För programvara skriven före Vista är en PNG-komprimerad post okända data, och det är ett skäl till att vissa äldre verktyg fallerar på moderna .ico-filer trots att Windows själv visar dem utan problem.

Gammalt verktyg, ny ikon

En redigerare från Windows XP-tiden kan kanske öppna de små bitmappsposterna i en modern ikon men fallera på 256×256-PNG-posten — eller avvisa hela filen. Ikonen är inte skadad; programmet är bara äldre än PNG-i-ICO.

.cur — syskonet för muspekare

Muspekare använder ett nästan identiskt format med filändelsen .cur. Microsofts artikel från 1995 säger att pekare är ”mycket lika ikoner” — så lika att exempelredigeraren för ikoner kunde läsa .CUR-filer genom att lätta på en enda kontroll: huvudets typ 2 för pekare i stället för 1 för ikoner. MSDN-artikeln från 2008 upprepar regeln: det andra ordet är 1 för ikoner och 2 för pekare.

Det viktiga tillägget i en pekare är hotspoten, de pixelkoordinater som räknas som pekarens spets. Som Raymond Chen beskriver på The Old New Thing börjar bildresurser för pekare med hotspotens x- och y-koordinater före bitmappsdata. Animerade pekare (.ani) är ett separat format och ingår inte i den här lektionen.

favicon.ico på webben

.ico-formatet tog sig ut från skrivbordet via webbläsaren. Internet Explorer 5, släppt i mars 1999, hämtade en fil med namnet favicon.ico från roten av en webbplats när en användare lade till den i Favoriter, och visade ikonen i favoritlistan. Raymond Chen förklarade senare att IE bara letade efter den när en sida lades till i Favoriter, inte vid varje besök, för att inte belasta servrarna. Sidor kunde också peka på en annan plats med ett link-element i HTML-koden.

Webbläsare accepterar i dag andra format för webbplatsikoner, men många webbplatser har fortfarande en favicon.ico i roten, och Microsofts IE-team konstaterade att ICO-formatets förmåga att rymma flera storlekar passar de många ställen där en webbplatsikon visas — flikar, favoriter, genvägar. En .ico i mappen Hämtade filer är därför ofta bara en webbplatsikon sparad från webben.

Så konverterar du .ico till PNG lokalt

Att byta namn från .ico till .png fungerar inte: filen börjar med ICONDIR-huvudet, inte en PNG-signatur, och kan innehålla många bilder. En riktig konvertering läser katalogen, väljer en post — oftast den största —, avkodar bitmapps- eller PNG-data, tillämpar transparensmasken och skriver en vanlig PNG som behåller alfakanalen. Välj JPG bara om du inte behöver transparens.

Legacy File Converter öppnar .ico-filer på din egen Windows-dator och konverterar dem till PNG eller JPG — inget laddas upp, vilket spelar roll när ikonerna hör till ett kundprojekt eller ett internt program. Det är ett lugnt sätt att göra äldre filer som gamla ikonuppsättningar till bilder som vilket program som helst kan öppna. För närliggande lektioner, se BMP, PNG och WebP.

Redo att öppna dina gamla filer?

Börja gratis och lås sedan upp obegränsade konverteringar med en Standard-licens för $79.95 som betalas en gång. Ladda ned installationsprogrammet för Windows – alla funktioner för upp till 10 filer.

Kostnadsfri testversion

Alla programmets funktioner · upp till 10 filer

Windows 10 eller 11

Samma kostnadsfria testversion som alltid – ladda ned installationsprogrammet för Windows och konvertera lokalt på din dator.

Starta den kostnadsfria testversionen – ladda ned installationsprogrammet

Direkt installationsprogram för Windows · offline-MSI

Är det säkert? — utgivare, installationsprogram och hjälp med SmartScreen

Köp Standard – $79.95

Kräver Windows 10 eller 11. Inga prenumerationer. 100 % Windows-native.