Legacy File Converter-logoLegacy File Converter
Historielektion8 min. læsning

Historielektion: Hvad er en .ico-fil? Windows’ ikonformat

Windows’ ikonformat — én fil med flere størrelser og farvedybder, en lille header og et katalog forrest, PNG-komprimerede billeder siden Windows Vista, en .cur-søskende til markører og den favicon.ico, som alle websteder stadig serverer.

·Af Legacy File Converter-teamet
En retro stationær pc med ikoner på skærmen, ét mappeikon stablet i flere størrelser, et dokumentkort og en pilemarkør, ingen logoer

TL;DR

En .ico er en Windows-ikonfil. Én fil kan indeholde flere billeder af det samme ikon i forskellige størrelser og farvedybder, og Windows vælger det bedst egnede til skrivebordet, en titellinje eller en dialogboks. Opbygningen er enkel: en header på 6 byte (reserveret, type, antal billeder), én katalogpost på 16 byte pr. billede og derefter billeddataene. Klassiske poster er bitmapdata (DIB) med en AND-maske til gennemsigtighed; siden Windows Vista kan en post være et komplet PNG, hvilket gjorde 256×256-ikoner praktiske. Markørformatet .cur er næsten en tvilling (type 2 i stedet for 1, plus et hotspot). På nettet begyndte Internet Explorer 5 (marts 1999) at hente favicon.ico fra webstedernes rod. For at få et almindeligt billede ud skal du konvertere .ico til PNG lokalt — Legacy File Converter gør det på din egen pc, uden upload.

Hvad er en .ico-fil?

En .ico-fil er Windows’ ikonformat. De fleste billedfiler rummer ét billede; en ICO-fil rummer en ikonressource — en lille samling billeder, der alle viser det samme ikon, hver tegnet i en anden størrelse og/eller farvedybde. Microsofts egen forklaring, John Hornicks artikel Icons dateret 29. september 1995, siger det ligeud: én ICO-fil, eller en ikonressource i en EXE eller DLL, kan indeholde flere ikonbilleder med hver sin størrelse og/eller farvedybde.

Derfor kommer søgningen “hvad er en .ico-fil” som regel fra nogen, der har fundet en i en programmappe, en download fra nettet eller et gammelt projekt og undrer sig over, hvorfor fotofremviseren kun viser en lille firkant — eller ingenting. Filen er gyldig; den er bare en container af ikonbilleder, ikke et almindeligt foto. For beslægtede formater på dette websted, se Historielektion: Hvad er en .bmp-fil? og Historielektion: Hvad er en .png-fil?.

Tidlige Windows-ikoner og æraen med én størrelse

Ikoner har været en del af Windows siden de tidligste skrivebordsmiljøer, men det tidlige system tænkte i én ikonstørrelse. Microsofts artikel fra 1995 bemærker, at de oprindelige funktioner som LoadIcon, ExtractIcon og DrawIcon stammede “fra 16-bit-dagene, hvor systemet kun definerede én ikonstørrelse”, og at de strækker det, de får, til den store standardstørrelse.

Med Windows 95 og de følgende Windows NT-versioner holdt Windows styr på små og store ikoner for både system og shell, og nye funktioner (Ex-varianterne, LoadImage, DrawIconEx) kunne bede om en bestemt størrelse. Vejledningen fra 1995 opfordrede udviklere til mindst at levere 16×16 og 32×32 i 16 farver plus 48×48 i 256 farver. Formatet havde længe kunnet rumme usædvanlige størrelser; det var Windows, der indhentede det for at bruge dem.

Én fil, mange størrelser og farvedybder

Når Windows skal bruge et ikon, gennemgår det billederne i ressourcen. Ifølge Microsofts regler fra 1995 vælger det billedet med den størrelse, der er tættest på den ønskede; deler flere den størrelse, foretrækkes det, der matcher skærmens farvedybde, ellers det dybeste, der ikke overstiger den. Små størrelser er ikke bare formindskede kopier — designere tegner dem ofte om, så en 16×16-version forbliver læselig.

Microsofts ikonretningslinjer for Windows Vista angav senere det fulde sæt til programikoner som 16×16, 32×32, 48×48 og 256×256, med 32-bit-grafik (inklusive alfa) plus 8-bit- og 4-bit-paletversioner til situationer som fjernskrivebord. En lille .ico kan derfor rumme et dusin billeder eller flere — præcis det, man ser, når man åbner den i en ikoneditor.

Mange billeder, ét ikon

Viser en fremviser et anderledes eller meget lille billede, har den sandsynligvis valgt én post blandt flere. At konvertere til PNG betyder som regel at vælge en post — normalt den største — og eksportere den.

Sådan er en .ico-fil bygget op

Opbygningen kan beskrives i ét afsnit. Filen starter med en ICONDIR-header på tre ord à 2 byte: en reserveret værdi, der skal være 0, en type, der er 1 for ikoner, og et antal billeder. Derefter følger én ICONDIRENTRY pr. billede — 16 byte hver — med billedets bredde, højde, antal farver, planer, bit pr. pixel, antal byte billeddata og den forskydning, hvor dataene begynder i filen.

Hvert klassisk billede er en DIB (enhedsuafhængig bitmap) — en BITMAPINFOHEADER, en valgfri farvetabel, XOR-masken (farvepixlerne) og en 1-bit AND-maske, der markerer gennemsigtige områder. Microsoft nævner en klassisk faldgrube: højden i headeren er den samlede højde af begge masker, så den ser dobbelt så stor ud som ikonets reelle højde. I samme familie bruger ikoner i EXE- og DLL-filer næsten de samme strukturer som RT_GROUP_ICON- og RT_ICON-ressourcer.

PNG i ikonet siden Windows Vista

Større ikoner gjorde bitmapdata tunge. En artikel i MSDN Magazine fra 2008 om afkodning af Windows Vista-ikoner forklarer, at de voksende bitmaps fyldte for meget på disken og i hukommelsen, så Microsoft valgte PNG: ikoner i Windows Vista kan indlejre PNG-billeder i stedet for DIB’er, hvilket gjorde 256×256-ikoner i 32 bit praktiske til en brøkdel af størrelsen. Microsofts Vista-retningslinjer siger, at kun 256×256-billedet bør komprimeres, mens de mindre størrelser bevares i klassisk form.

Et bredde- eller højdefelt på én byte kan ikke rumme 256, så et 0 i katalogposten læses som 256. For software skrevet før Vista er en PNG-komprimeret post ukendte data, og det er én grund til, at nogle ældre værktøjer fejler på moderne .ico-filer, selvom Windows selv viser dem fint.

Gammelt værktøj, nyt ikon

En editor fra Windows XP-tiden kan måske åbne de små bitmapposter i et moderne ikon, men fejle på 256×256-PNG-posten — eller afvise hele filen. Ikonet er ikke beskadiget; programmet er bare ældre end PNG-i-ICO.

.cur — søskende til markører

Musemarkører bruger et næsten identisk format med filtypen .cur. Microsofts artikel fra 1995 siger, at markører er “meget lig ikoner” — så meget, at eksempel-ikoneditoren kunne læse .CUR-filer ved at lempe ét enkelt tjek: header-typen 2 for markører i stedet for 1 for ikoner. MSDN-artiklen fra 2008 gentager reglen: det andet ord er 1 for ikoner og 2 for markører.

Det vigtige ekstra i en markør er hotspottet, de pixelkoordinater, der gælder som markørens spids. Som Raymond Chen beskriver på The Old New Thing, begynder markørbilledressourcer med hotspottets x- og y-koordinater før bitmapdataene. Animerede markører (.ani) er et separat format og ikke en del af denne lektion.

favicon.ico på nettet

.ico-formatet slap ud af skrivebordet via browseren. Internet Explorer 5, udgivet i marts 1999, hentede en fil ved navn favicon.ico fra roden af et websted, når en bruger føjede det til Favoritter, og viste ikonet i Favoritlisten. Raymond Chen forklarede senere, at IE kun ledte efter den, når en side blev føjet til Favoritter, ikke ved hvert besøg, for ikke at belaste serverne. Sider kunne også pege på en anden placering med et link-element i HTML’en.

Browsere accepterer i dag andre formater til webstedsikoner, men mange websteder har stadig en favicon.ico i roden, og Microsofts IE-team bemærkede, at ICO’s evne til at rumme flere størrelser passer til de mange steder, et webstedsikon dukker op — faner, favoritter, genveje. En .ico i mappen Overførsler er derfor ofte bare et webstedsikon gemt fra nettet.

Sådan konverterer du .ico til PNG lokalt

At omdøbe .ico til .png virker ikke: filen starter med ICONDIR-headeren, ikke en PNG-signatur, og kan indeholde mange billeder. En rigtig konvertering læser kataloget, vælger en post — som regel den største —, afkoder bitmap- eller PNG-dataene, anvender gennemsigtighedsmasken og skriver en almindelig PNG, der bevarer alfakanalen. Vælg kun JPG, hvis du ikke har brug for gennemsigtighed.

Legacy File Converter åbner .ico-filer på din egen Windows-pc og konverterer dem til PNG eller JPG — intet uploades, hvilket betyder noget, når ikonerne hører til et kundeprojekt eller et internt program. Det er en rolig måde at gøre legacy-filer som gamle ikonsæt til billeder, som ethvert program kan åbne. For nabolektioner, se BMP, PNG og WebP.

Klar til at åbne dine gamle filer?

Start gratis, og lås derefter op for ubegrænset konvertering med en Standard-licens til $79.95 én gang. Download Windows-installationsprogrammet – alle funktioner til op til 10 filer.

Gratis prøveversion

Alle programmets funktioner · op til 10 filer

Windows 10 eller 11

Samme gratis prøveversion som altid – download Windows-installationsprogrammet, og konvertér lokalt på din pc.

Start den gratis prøveversion – download installationsprogrammet

Direkte Windows-installationsprogram · offline MSI

Er det sikkert? — udgiver, installationsprogram og hjælp til SmartScreen

Køb Standard – $79.95

Kræver Windows 10 eller 11. Ingen abonnementer. 100 % Windows-native.